기출문제/정보처리기사
2020년 3회 정보처리기사 기출문제 61번
엉클지니
2025. 4. 9. 17:39
61. 다음 자바 프로그램 조건문에 대해 삼항 조건 연산자를 사용하여 옳게 나타낸 것은?
❶ 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);
이 문제는 삼항 조건 연산자를 사용하여 주어진 조건문을 올바르게 나타내는 것에 관한 문제입니다.
삼항 조건 연산자 기본 구조
삼항 조건 연산자의 형식은 다음과 같습니다:
조건 ? 조건이 참일 때 실행할 식 : 조건이 거짓일 때 실행할 식;
즉, 조건이 참이면 첫 번째 식을 실행하고, 조건이 거짓이면 두 번째 식을 실행합니다.
주어진 코드 분석 🧐
주어진 코드:
int i = 7, j = 9;
int k;
k = (i > j) ? (i - j) : (i + j);
여기서 k = (i > j) ? (i - j) : (i + j);는 i가 j보다 크면 (i - j)를 k에 대입하고, i가 j보다 작거나 같으면 (i + j)를 k에 대입하는 구조입니다.
- i = 7, j = 9이므로 i > j 조건은 거짓입니다.
- 그래서 (i + j)가 선택되고, 결과적으로 k는 7 + 9 = 16이 됩니다.
각 보기 분석
- ❶ k = (i>j)?(i – j):(i + j);
- 이 보기는 i > j일 때 (i - j)를 실행하고, 아니면 (i + j)를 실행하는 구조입니다.
- i = 7이고 j = 9이므로 i > j는 거짓이므로 k는 i + j = 7 + 9 = 16이 됩니다.
- 올바른 코드입니다.
- ② k = (i<j)?(i – j):(i + j);
- 이 보기는 i < j일 때 (i - j)를 실행하고, 아니면 (i + j)를 실행하는 구조입니다.
- i = 7이고 j = 9이므로 i < j는 참이므로 k는 i - j = 7 - 9 = -2가 됩니다.
- 이는 원래 코드와 다르므로 틀린 코드입니다.
- ③ k = (i>j)?(i + j):(i - j);
- 이 보기는 i > j일 때 (i + j)를 실행하고, 아니면 (i - j)를 실행하는 구조입니다.
- i = 7이고 j = 9이므로 i > j는 거짓이므로 k는 i - j = 7 - 9 = -2가 됩니다.
- 이는 원래 코드와 다르므로 틀린 코드입니다.
- ❹ k = (i<j)?(i + j):(i - j);
- 이 보기는 i < j일 때 (i + j)를 실행하고, 아니면 (i - j)를 실행하는 구조입니다.
- i = 7이고 j = 9이므로 i < j는 참이므로 k는 i + j = 7 + 9 = 16이 됩니다.
- 틀린 코드입니다. 이 보기는 원래 코드의 결과와 다릅니다.
결론 🏁
따라서 주어진 코드와 동일한 결과를 만드는 것은 ❶번입니다.