문제
다음 JAVA 프로그램이 실행되었을 때의 결과는?
① 2 ② 3 ③ 4 ④ 5
정답
1번
해설
정답: 1. do-while은 조건을 나중에 검사하므로 본문이 최소 한 번 실행되어 cnt는 1이 된다. 이후 while(cnt < 0)은 1 < 0이 거짓이라 반복을 종료한다. if(cnt == 1)이 참이므로 cnt++로 cnt = 2가 되어 2가 출력된다.
오답 풀이
- 1번: do-while 1회 실행 후 cnt=1, if 분기에서 cnt=2가 되어 정답이다.
- 2번: 3은 else 분기(cnt+3)를 탔을 때의 값이나 if 조건이 참이라 실행되지 않는다.
- 3번: 4는 잘못된 추적 결과이다.
- 4번: 5는 잘못된 추적 결과이다.
보충 개념 do-while 문은 조건과 무관하게 본문을 먼저 한 번 실행한 뒤 조건을 검사하므로, 조건이 처음부터 거짓이어도 최소 1회는 수행된다.