문제
아래 C 코드의 for문을 while문으로 올바르게 변환한 것은 무엇인가?
Cfor(i=0; i<10; i++){ sum += i; }
① while(i<10){ i=0; i++; sum+=i; } ② i=0; while(i<10){ i++; sum+=i; } ③ i=0; while(i<10){ sum+=i; i++; } ④ while(i<10){ i=0; sum+=i; i++; }
정답
3번
해설
정답: 3. for문의 초기식은 반복문 전에, 증감식은 반복문 본문 실행 후에 수행되어야 한다.
오답 풀이
- 1번: 반복문 내부에서 매번 i를 0으로 초기화해 무한 반복 위험이 있다.
- 2번: i를 더하기 전에 증가시키므로 더하는 값의 순서가 달라진다.
- 3번: i=0으로 초기화 후 sum에 더하고 마지막에 i++를 수행하므로 원래 for문과 같다.
- 4번: 반복문 내부에서 i를 계속 0으로 초기화해 부적절하다.
보충 개념
for(초기식; 조건식; 증감식){본문}은 초기식; while(조건식){본문; 증감식;}으로 변환할 수 있다.