처음에 i = 0, hap = 0 이라고 지정되었고 for문에 들어가서 i가 1이 되었을 때 ++i와 hap += i 를 순서대로 수행해서 i = 2, hap = 2가 되는건 알겠는데 맨 처음 출력되는 '합은1 0입니다.'가 잘 이해가 안됩니다 ㅜㅜ 처음에 for문에 들어갔을 때 hap이 0이 되려면 i의 값도 0이어야 되는거 아닌가요? i가 1이 되었을 때 hap이 어떻게 0이 되는지 잘 모르겠습니다 ㅜ
안녕하세요 길벗수험서 운영팀입니다.
for(i=1; i<=5; ++i, hap+=i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
위의 코드를 아래로 단순화 시켜 보죠.
for(①; ②; ③)
④;
해당 문제에서 내부의 출력문은 i가 1일 때부터, 5일 때까지 총 5회 수행됩니다.
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 참), ④
5회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
이 때 주의하세요. 증가식 ③(++i, hap+=i)이 수행되는 것은 2회부터 입니다.
출력문이 처음 나타나는 1회의 ④가 수행될 때 증가식은 수행되지 않고 초기값(①)만 수행된 상태이므로 결과가 "합은 1 0입니다."가 출력되게 되죠.
행복한 하루되세요 :)
-
관리자2020-07-13 14:39:14
안녕하세요 길벗수험서 운영팀입니다.
for(i=1; i<=5; ++i, hap+=i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
위의 코드를 아래로 단순화 시켜 보죠.
for(①; ②; ③)
④;
해당 문제에서 내부의 출력문은 i가 1일 때부터, 5일 때까지 총 5회 수행됩니다.
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 참), ④
5회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
이 때 주의하세요. 증가식 ③(++i, hap+=i)이 수행되는 것은 2회부터 입니다.
출력문이 처음 나타나는 1회의 ④가 수행될 때 증가식은 수행되지 않고 초기값(①)만 수행된 상태이므로 결과가 "합은 1 0입니다."가 출력되게 되죠.
행복한 하루되세요 :)