. Java의 정석
[Java] 조건 연산자
박인영
2021. 7. 10. 18:48
<조건 연산자>
조건 연산자는 세 개의 피연산자를 필요로 하는
유일한 삼항 연산자이다.
연산자 중 대입 연산자(=) 다음으로 낮다.
조건식 ? 식1 : 식2
의 형태로
조건식이 true면 식1의 연산 결과를 반환하고
조건식이 false면 식2의 연산 결과를 반환한다.
int x = 5;
int y = 3;
int result ;
result = (x > y) ? x : y;
System.out.println(result); // 5
result = (x < y) ? x : y;
System.out.println(result); // 3
< 조건 연산 시 형변환>
조건 연산자의 식1과 식2,
이 두 피연산자의 타입이 다른 경우,
이항 연산자처럼 산술 변환이 발생한다.
int j = 10;
double k = 15d;
System.out.println(j >= k ? j : k); // 15.0
System.out.println(j >= k ? j - k : k - j); // 5.0
위 예제에서도 자동 형변환이 일어나서
double 타입으로 통일되고 연산 결과 역시 double 타입이 된다.
조건 연산의 결과를 변수에 저장하는 경우
데이터 타입을 잘 맞추어야 한다.
<조건 연산의 중첩>
조건식 ? 식1 : (조건식 ? 식2 : 식3)
위와 같이 조건 연산자를 중첩으로 사용하면
셋 이상 중의 하나를 결과로 얻을 수 있다.
조건 연산자의 결합 규칙이 오른쪽에서 왼쪽이므로
괄호가 없어도 되지만
가독성을 높이기 위해 사용하는 것이 좋다.
int i= 0;
String result = i > 0 ? "양수" : (i < 0 ? "음수" : "영");
System.out.println(result); // 영
조건 연산자는 여러 번 중첩할 수 있으나
가독성이 떨어지므로
꼭 필요한 경우 한번 정도만 중첩하는 것이 좋다.