public class Problem {
public static void main (String[] args) {
int i = 0, hap = 0;
for ( i =1; i <=5 ; ++i, hap += i)
System.out.printf("합은%d %4d입니다\n.", i, hap);
}
}
정답) 합은1 0입니다.
합은2 2입니다.
합은3 5입니다.
합은4 9입니다.
합은5 14입니다.
--------------------
출력을 반복하는 반복문 문제입니다. 반복문의 식3번이 콤마로 ++i, hap +=i 두개로 되어있고 순서대로 하는건 알겠는데
출력시에 첫번째로 합은2 2입니다. 가 아니라
합은1 0입니다. 가 왜 출력되는지 궁금합니다.
안녕하세요 길벗수험서 운영팀입니다.
for문의 작동 순서를 혼동하신 것 같습니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
입니다.
이것의 위의 반복문에 적용한다고 가정하면,
1회 : i는 1이 되고, i<=5를 판별한 뒤(참), 출력을 수행합니다. "합은1 0입니다."
2회 : i는 2, 합은 2가 되고, i<=5를 판별한 뒤(참), 출력을 수행합니다. "합은2 2입니다."
for문의 작동순서를 다시 한 번 확인해보시고, 코드를 따라가 보세요.
행복한 하루되세요 :)
-
관리자2019-03-11 10:38:54
안녕하세요 길벗수험서 운영팀입니다.
for문의 작동 순서를 혼동하신 것 같습니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
입니다.
이것의 위의 반복문에 적용한다고 가정하면,
1회 : i는 1이 되고, i<=5를 판별한 뒤(참), 출력을 수행합니다. "합은1 0입니다."
2회 : i는 2, 합은 2가 되고, i<=5를 판별한 뒤(참), 출력을 수행합니다. "합은2 2입니다."
for문의 작동순서를 다시 한 번 확인해보시고, 코드를 따라가 보세요.
행복한 하루되세요 :)