<개인공부>/[C#]

[C#] Math.Clamp 메서드(함수) 설명 및 예제

BlockDMask 2022. 7. 18. 06:00
반응형

안녕하세요. BlockDMask 입니다.
오늘은 C#에 있는 clamp 라는 메서드(함수)를 설명 드리려 합니다.
작업을 하다보면 '특정 값이 해당 범위 내에서 나왔으면 좋겠다'하는 작업 부분이 있을 것 입니다.
그때 사용하는 유용한 함수 입니다.

<목차>
1. C# Math.Clamp 메서드 설명
2. C# Math.Clamp 메서드 예제

 

1. C#의 clamp 함수 설명


1-1) Clamp 함수 정의 및 설명

public ststic int Math.Clamp(int value, int min, min max)

clamp 함수(메서드)는 어떤 값이 범위 안에 있는지 검사하고 범위 내에 있으면 그 값을 바로 반환합니다.
단, 해당 값이 범위보다 낮을때는 최소값범위보다 높을때는 최대 값을 반환해주는 함수입니다.

함수의 매개변수와 반환형은 이렇습니다.

첫번째 매개변수 value는 집어 넣을값(=검사할값)
두번째 매개변수 min 최소값.
세번째 매개변수 max 최대값.
반환은 결과 값 입니다.

정리를 한번 하면
value 가 min <= value <= max 이면 value를 반환
value < min 이면 min 반환
value > max 이면 max 반환

이렇게 세줄로 정리 할 수 있습니다.

 

1-2) clamp 함수(메서드) 클래스 

해당 메서드는 System 클래스 안에 Math 클래스에 있습니다.
그렇기 때문에 using System; 을 상단에 작성해주시면 편하게 Math.Clamp 로 사용할 수 있습니다.

using System.Math; 를 상단에 작성해주면 그냥 Clamp 메서드를 바로 호출 할 수 있습니다.

 

1-3) clamp 함수 오버로딩

해당 함수는 숫자 관련 모든 타입에 대해서 오버로딩 되어있습니다.
즉, 우리는 소수점이든 정수든 어떤타입으로 넣으면 알아서 알맞게 값이 나올 수 있습니다.

아래를 보면 Clamp 메서드에 매개변수로 다양한 타입을 받고 그 타입에 따라서 반환 값도 동일 타입으로 나오게 됩니다.

*clamp를 사전에 찾아보면 "집게"라는 뜻을 가지고 있습니다.
'어느 부분을 집는다', '어디서 어디 영역을 잡는다' 이런 뜻으로 해석한다면 함수에 대해서 잘 기억이 날 것 입니다.

*관련해서 C# 공식 문서[바로가기]에 있습니다.

 

 

2. C# clamp 함수 예제


- clamp 메서드 int 타입 예제

using System;

int result = 0;

result = Math.Clamp(10, 5, 20); // 5~20 사이
Console.WriteLine($"Math.Clamp(10, 5, 20) : {result}");

result = Math.Clamp(0, 5, 20); // 5~20 사이
Console.WriteLine($"Math.Clamp(0, 5, 20) : {result}");

result = Math.Clamp(50, 5, 20); // 5~20 사이
Console.WriteLine($"Math.Clamp(50, 5, 20) : {result}");

Math.Clamp 메서드는 이렇게 맨 처음에 넣을 값을 넣고, 그 다음에 min max 범위를 넣습니다.
예제에서는 min값을 0으로 max 값을 20으로 지정하고
value는 10, 0, 50으로 사이값, min값, max값을 예시로 적어보았습니다.

값을 보면 10을 넣었을 때 10이 나왔고,
min 값보다 낮은 0을 넣었을때는 min값인 5가 나왔습니다.
또 max 값보다 높은 50을 넣었을때는 max 값인 50이 나왔습니다.

 

이상으로 오늘 C#의 유용한 메서드 clamp 에 대해서 알아보았습니다. 
감사합니다.

반응형