삼항 연산자는 세 개의 피연산자를 가지며, 조건식을 평가하여 결과를 반환하는 연산자입니다. 자바에서의 삼항 연산자는 다음과 같은 형식을 갖습니다
조건식 ? 식1 : 식2
위의 형식에서 조건식은 참 또는 거짓으로 평가될 수 있는 불리언(boolean) 표현식이고, 식1과 식2는 각각 조건식이 참일 때와 거짓일 때 평가될 표현식입니다.
삼항 연산자는 다음과 같은 동작을 수행합니다:
조건식이 참인 경우, 식1의 결과가 전체 표현식의 결과가 됩니다.
조건식이 거짓인 경우, 식2의 결과가 전체 표현식의 결과가 됩니다.
예를 들어, 다음과 같은 코드를 살펴봅시다:
int a = 5;
int b = 10;
int max = (a > b) ? a : b;
위의 코드에서 조건식은 a > b이고, a와 b를 비교하여 참 또는 거짓으로 평가됩니다. a가 b보다 작기 때문에 조건식은 거짓이 되고, 따라서 전체 표현식의 결과는 b가 됩니다. 따라서 max 변수에는 10이 저장됩니다.
삼항연산자는 여러단계를 넣을 수도 있습니다.
int num = 3;
boolean mult2 = true;
boolean plus5 = true;
System.out.println(
(!mult2 && !plus5) ? num
//(!mult2 && !plus5)이 false라면 아래 문장이 실행
: (mult2 && plus5) ? num * 2 + 5
//(mult2 && plus5)이 false라면 아래 문장이 실행
: mult2 ? num * 2
//mult2이 false라면 아래 문장이 실행
: num + 5
);
위 코드에서는 !mult2 && !plus5 값이 false이고 mult2 && plus5값이 true이기 때문에 num*2+5 = 11이 출력됩니다.
삼항연산자에서도 단축평가가 적용됩니다. 즉 조건이 true라면 콜론(:) 앞만 평가하고 조건이 false라면 콜론(:)뒤만 평가합니다.
int x = 1, y = 2;
int a = x < y ? (x += 2) : (y += 2); //1 < 2 ->조건이 true이므로 콜론(:)앞만 평가함
System.out.println("x = " + x+", y = " + y); //출력: x = 3, y = 2 -> x는 증가, y는 변화없음
int b = x < y ? (x += 2) : (y += 2); // 3 < 2 -> 조건이 false이므로 :(콜론) 뒤만 평가함
System.out.println("x = " + x+", y = " + y); //출력: x = 3, y = 4 -> x는 변화없음, y는 증가
삼항 연산자는 if-else 문을 간결하게 표현할 때 유용하게 사용될 수 있습니다. 예를 들어, 다음의 if-else 문과 동일한 동작을 하는 코드를 삼항 연산자로 표현할 수 있습니다:
int score = 75;
String result;
if (score >= 60) {
result = "합격";
} else {
result = "불합격";
}
위의 코드를 삼항 연산자로 표현하면 다음과 같습니다
int score = 75;
String result = (score >= 60) ? "합격" : "불합격";
삼항 연산자는 간단한 조건식에 대해서 간결하게 표현할 수 있으며, 코드의 가독성을 높일 수 있습니다. 그러나 복잡한 조건 또는 여러 개의 동작을 수행해야 할 경우에는 if-else 문을 사용하는 것이 더 적합할 수 있습니다.
'JAVA Programming > Java' 카테고리의 다른 글
[JAVA] 문자열 메서드 (0) | 2024.07.02 |
---|---|
[JAVA] final필드와 상수 (0) | 2024.07.02 |
[JAVA] 자료형과 연산자 (0) | 2024.06.26 |
자바 설치 및 기본 세팅 (0) | 2024.06.25 |
[JAVA] 설치 및 설정 & 기본 문법 (0) | 2024.05.27 |