본문 바로가기

언어/Java

[ 자바 / Java ] 삼항 연산자 사용해보기

반응형

반응형

자바의 삼항 연산자(Ternary Operator)는 조건식과 두 개의 값 중 하나를 선택하는 데 사용되는 간단한 형태의 조건문입니다. 삼항 연산자는 if-else 문을 간결하게 표현할 수 있어 코드의 가독성을 높여줍니다. 자바에서는 삼항 연산자를 ? : 구문으로 표현하며, 조건이 참인지 거짓인지에 따라 다른 결과를 반환합니다.

1. 삼항 연산자의 기본 구조

삼항 연산자는 다음과 같은 형식으로 사용됩니다:

조건식 ? 참일 때의 값 : 거짓일 때의 값;
  • 조건식: boolean 값을 반환하는 표현식입니다.
  • 참일 때의 값: 조건식이 true일 때 반환되는 값입니다.
  • 거짓일 때의 값: 조건식이 false일 때 반환되는 값입니다.

2. 삼항 연산자 사용 예

다양한 상황에서 삼항 연산자를 사용하는 몇 가지 예제를 통해 살펴보겠습니다.

예시 1: 간단한 조건 선택

가장 간단한 형태로, 삼항 연산자를 사용하여 숫자가 짝수인지 홀수인지를 확인할 수 있습니다.

public class TernaryOperatorExample {
    public static void main(String[] args) {
        int number = 10;
        String result = (number % 2 == 0) ? "짝수" : "홀수";

        System.out.println(number + "은 " + result + "입니다."); // 출력: 10은 짝수입니다.
    }
}

위의 예시에서 (number % 2 == 0) 조건식은 true 또는 false를 반환하며, 조건이 true이면 "짝수"를, false이면 "홀수"를 반환합니다.

예시 2: 최대값 찾기

삼항 연산자를 사용하여 두 숫자 중 더 큰 값을 선택할 수 있습니다.

public class MaxValueExample {
    public static void main(String[] args) {
        int a = 15;
        int b = 20;
        int max = (a > b) ? a : b;

        System.out.println("더 큰 값은 " + max + "입니다."); // 출력: 더 큰 값은 20입니다.
    }
}

위의 예시에서 (a > b) 조건식이 true이면 a를, false이면 b를 반환하여, 두 숫자 중 더 큰 값을 선택합니다.

예시 3: 조건에 따른 메시지 출력

삼항 연산자를 사용하여 조건에 따라 다른 메시지를 출력할 수 있습니다.

public class AgeCheckExample {
    public static void main(String[] args) {
        int age = 18;
        String message = (age >= 18) ? "성인" : "미성년자";

        System.out.println("당신은 " + message + "입니다."); // 출력: 당신은 성인입니다.
    }
}

위의 예시에서 (age >= 18) 조건식이 true이면 "성인"을, false이면 "미성년자"를 반환합니다.

3. 삼항 연산자 중첩 사용

삼항 연산자는 중첩해서 사용할 수도 있습니다. 이는 여러 조건을 평가하고자 할 때 유용할 수 있지만, 코드가 복잡해질 수 있으므로 주의해서 사용해야 합니다.

예시 4: 중첩 삼항 연산자

여러 개의 조건을 평가하여, 조건에 따라 다른 값을 반환합니다.

public class NestedTernaryOperatorExample {
    public static void main(String[] args) {
        int score = 85;
        String grade = (score >= 90) ? "A" :
                       (score >= 80) ? "B" :
                       (score >= 70) ? "C" :
                       (score >= 60) ? "D" : "F";

        System.out.println("당신의 성적은 " + grade + "입니다."); // 출력: 당신의 성적은 B입니다.
    }
}

위의 예시에서 중첩된 삼항 연산자를 사용하여 점수에 따라 성적을 결정합니다.

4. 삼항 연산자의 주의사항

  • 가독성: 삼항 연산자는 코드가 간결해지는 장점이 있지만, 너무 복잡하거나 중첩된 삼항 연산자는 가독성을 떨어뜨릴 수 있습니다. 복잡한 조건은 if-else 문을 사용하는 것이 더 명확할 수 있습니다.
  • 반환 타입 일관성: 삼항 연산자의 참일 때의 값거짓일 때의 값은 같은 타입이어야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.

예시 5: 타입 일관성 주의

public class TypeConsistencyExample {
    public static void main(String[] args) {
        int num = 10;
        // String result = (num > 5) ? "Number is greater than 5" : 100; // 컴파일 오류
        String result = (num > 5) ? "Number is greater than 5" : "Number is less than or equal to 5";

        System.out.println(result); // 올바르게 작동
    }
}

위의 잘못된 예시에서는 삼항 연산자의 반환 값이 Stringint로 타입이 일치하지 않아 컴파일 오류가 발생합니다. 올바른 타입을 반환해야 합니다.

5. 삼항 연산자와 if-else 문 비교

삼항 연산자는 if-else 문을 간결하게 대체할 수 있습니다. 예를 들어, 다음의 if-else 문:

int num = 10;
String result;
if (num > 5) {
    result = "Number is greater than 5";
} else {
    result = "Number is less than or equal to 5";
}

위의 코드는 삼항 연산자를 사용하여 다음과 같이 줄일 수 있습니다:

String result = (num > 5) ? "Number is greater than 5" : "Number is less than or equal to 5";

삼항 연산자는 간단한 조건 평가와 변수 초기화 또는 대입에 매우 유용하며, 코드의 가독성과 간결성을 높이는 데 사용됩니다.

자바의 삼항 연산자를 적절히 활용하면 조건문을 더 간단하고 효율적으로 작성할 수 있습니다.

반응형