116p 25번
for(i = 1; i <= 10; ++i, hap += i);
System.out.printf("%d, %d\n", i, hap);
120p 34번
for(i = 1; i <= 5; ++i, hap += i);
System.out.printf("합은%d %4d입니다.\n", i, hap);
25번은 출력 결과가 11, 65로
i가 10일때 ++i 되어 i = 11, hap = 65까지 적용된 값이 출력 되는데
34번은 왜 "합은6 20입니다."까지 출력되지 않는 건가요?
"합은7 27입니다."부터 미출력 되어야 하는거 아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
출력문의 위치를 확인하세요.
120p의 34번은 출력문이 for문에 포함되어 있습니다.
for(i = 1; i <= 5; ++i, hap += i);
System.out.printf("합은%d %4d입니다.\n", i, hap);
가 아닌
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
입니다. for문 뒤의 세미콜론(;)이 존재하지 않아 아래의 출력문이 for문에 속하게 되죠.
때문에 34번의 출력문은 for문이 반복될 때에만 출력되게 됩니다.
i가 1~5가 될 때 까지 말이죠.
마지막에 for문을 벗어나기 전에 ++i와 hap+=i를 수행하지만 이것을 출력되지 않고 for문이 종료되므로
25번과는 구분되어야 합니다.
(i가 7인 경우는 존재할 수 없습니다.)
행복한 하루되세요 :)
-
관리자2019-04-08 11:41:05
안녕하세요 길벗수험서 운영팀입니다.
출력문의 위치를 확인하세요.
120p의 34번은 출력문이 for문에 포함되어 있습니다.
for(i = 1; i <= 5; ++i, hap += i);
System.out.printf("합은%d %4d입니다.\n", i, hap);
가 아닌
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
입니다. for문 뒤의 세미콜론(;)이 존재하지 않아 아래의 출력문이 for문에 속하게 되죠.
때문에 34번의 출력문은 for문이 반복될 때에만 출력되게 됩니다.
i가 1~5가 될 때 까지 말이죠.
마지막에 for문을 벗어나기 전에 ++i와 hap+=i를 수행하지만 이것을 출력되지 않고 for문이 종료되므로
25번과는 구분되어야 합니다.
(i가 7인 경우는 존재할 수 없습니다.)
행복한 하루되세요 :)