디버깅에서
i가 0 hap 0
i가 1 이면 hap은 1아닌가요 ? 왜 0이지요 ?
안녕하세요. 길벗 수험서 운영팀입니다.
반복문 for문의 작업 순서를 알고 계셔야 이해할 수 있는 문제입니다.
for(①; ②; ③) { ④; } |
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④, ③
2회 : ②(조건 참), ④, ③
3회 : ②(조건 참), ④, ③
4회 : ②(조건 거짓) <탈출>
이것을 34번 문제에 적용한다고 가정했을 때,
①은 i=1, ②는 i<=5 ③은 ++i와 hap+=i, ④는 System.out.printf("합은%d %4d입니다.\n", i, hap); 입니다.
1. i에 1을 저장합니다.(초기값 적용)
2. i<=5를 비교합니다.(종료값 비교 후 조건이 맞으므로)
3. i, hap을 출력합니다.(반복문 수행)
4. ++i, hap+=i를 수행합니다.(증가값 적용)
5. 2~4번 과정을 반복합니다.(종료값 비교 후 조건이 맞는 동안 반복문 수행)
위와 같이 for문이 수행되면, 처음 for문을 수행할 때 출력되는 값은
“합은1 0입니다.”가 됩니다.
행복한 하루되세요.^^
-
*2018-09-18 09:52:25
안녕하세요. 길벗 수험서 운영팀입니다.
반복문 for문의 작업 순서를 알고 계셔야 이해할 수 있는 문제입니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④, ③
2회 : ②(조건 참), ④, ③
3회 : ②(조건 참), ④, ③
4회 : ②(조건 거짓) <탈출>
이것을 34번 문제에 적용한다고 가정했을 때,
①은 i=1, ②는 i<=5 ③은 ++i와 hap+=i, ④는 System.out.printf("합은%d %4d입니다.\n", i, hap); 입니다.
1. i에 1을 저장합니다.(초기값 적용)
2. i<=5를 비교합니다.(종료값 비교 후 조건이 맞으므로)
3. i, hap을 출력합니다.(반복문 수행)
4. ++i, hap+=i를 수행합니다.(증가값 적용)
5. 2~4번 과정을 반복합니다.(종료값 비교 후 조건이 맞는 동안 반복문 수행)
위와 같이 for문이 수행되면, 처음 for문을 수행할 때 출력되는 값은
“합은1 0입니다.”가 됩니다.
행복한 하루되세요.^^