디버깅할때
c[3]이므로 default로 들어가 p=1이고 int i =0 이므로
i p
1
0 0
1 0
2 0
.
.
이렇게 디버깅이 아니라 왜 답안처럼 되는지 모르겠습니다
안녕하세요. 길벗 수험서 운영팀입니다.
반복문 for문의 작업 순서를 알아야 이해할 수 있는 문제입니다.
for(①; ②; ③) { ④ } |
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
질문하신 “for (int i = 0; i < 5; i++, p *= i);”의 경우에는 위 예시의 ④가 없으므로 ④는 제외하고 진행하면 됩니다.
1회 : ①i=0, ②i<5(참)
2회 : ③i++(i=1), p*=i(p=1), ②i<5(참)
3회 : ③i++(i=2), p*=i(p=2). ②i<5(참)
4회 : ③i++(i=3), p*=i(p=6), ②i<5(참)
5회 : ③i++(i=4), p*=i(p=24), ②i<5(참)
6회 : ③i++(i=5), p*=i(p=120), ②i<5(거짓) <탈출>
위의 결과로 p는 120이 됩니다.
행복한 하루되세요.^^
-
*2018-09-03 16:20:01
안녕하세요. 길벗 수험서 운영팀입니다.
반복문 for문의 작업 순서를 알아야 이해할 수 있는 문제입니다.
for(①; ②; ③) {
④
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
질문하신 “for (int i = 0; i < 5; i++, p *= i);”의 경우에는 위 예시의 ④가 없으므로 ④는 제외하고 진행하면 됩니다.
1회 : ①i=0, ②i<5(참)
2회 : ③i++(i=1), p*=i(p=1), ②i<5(참)
3회 : ③i++(i=2), p*=i(p=2). ②i<5(참)
4회 : ③i++(i=3), p*=i(p=6), ②i<5(참)
5회 : ③i++(i=4), p*=i(p=24), ②i<5(참)
6회 : ③i++(i=5), p*=i(p=120), ②i<5(거짓) <탈출>
위의 결과로 p는 120이 됩니다.
행복한 하루되세요.^^