문제
다음 자바 프로그램 조건문에 대해 삼항 조건 연산자를 사용하여 옳게 나타낸 것은?
① int i = 7, j = 9; int k; k = (i>j)?(i - j):(i + j); ② int i = 7, j = 9; int k; k = (i<j)?(i - j):(i + j); ③ int i = 7, j = 9; int k; k = (i>j)?(i + j):(i - j); ④ int i = 7, j = 9; int k; k = (i<j)?(i + j):(i - j);
정답
1번
해설
정답: 1. 조건이 i>j 참이면 i-j, 거짓이면 i+j이므로 삼항 연산자는 k = (i>j)?(i-j):(i+j) 형태인 ①이 옳다.
오답 풀이
- 1번: 조건과 참·거짓 식이 원래 if문과 정확히 일치한다.
- 2번: 조건을 i<j로 잘못 바꾸었다.
- 3번: 참·거짓 식의 순서가 뒤바뀌었다.
- 4번: 조건과 식이 모두 잘못되었다.
보충 개념 삼항 연산자 형식: 조건 ? 참일_때_값 : 거짓일_때_값.