[코딩 팁] 변수의 최댓값 최솟값 제한하기

 

🍊 변수의 최솟값 최댓값 제한하기

변수의 값이 최솟값보다 작으면 최솟값을 갖게 하고, 최댓값보다 크면 최댓값 갖게 해서 변수의 값이 항상 최솟값과 최댓값 사이에 있도록 코드를 작성해 보자.

 

첫 번째, 분기문을 작성하면 간단하게 해결된다.

if 분기문

public class App {
    private static final int MIN_VALUE = 0;
    private static final int MAX_VALUE = 100;

    public static void main(String[] args) {
        int result = processValue(105);
        System.out.println(result); // 100 
    }

    public static int processValue(int value){
        if(value < MIN_VALUE){
            value = 0;
            
        } else if(value > MAX_VALUE){
            value = 100;
        }

        return value;
    }
}

 

두 번째, 조금 더 간지(?)나게 min, max 메서드를 사용해서 문제를 해결할 수 있다.

변수의 초깃값(105)과 최댓값(100)의 min을 구한 다음, 최솟값(0)과 max를 하면 결과는 항상 최댓값과 최솟값 사이에 속한다.

min, max 메서드 사용

public class App {
    private static final int MIN_VALUE = 0;
    private static final int MAX_VALUE = 100;

    public static void main(String[] args) {
        int result = max(MIN_VALUE, min(105, MAX_VALUE));
        System.out.println(result); // 100
    }

    public static int min(int a, int b){
        return a > b ? b : a;
    }

    public static int max(int a, int b){
        return a > b ? a : b;
    }
}