반복문의 거짓조건까지 실행 해서 합은6 20입니다 가 나와야하는거 아닌가요?
디버깅엔 6 20까지 한다고 책에 나와있는데
왜 출력화면에선 5 14가 나오죠?
거기다가 왜 출력이 5개가 나오는거죠?
다른문제는 마지막 i값과 총합산값만 하나씩 나왔는데
이번 문제도 다른문제랑 별 다를거 없는 조건123식인데
25번같은것도 형태는 같은데
디버깅 11 65 맞으니까
출력도 11 65인데
왜 34번은 디버깅은 6 20이고
출력은 5 14인지..
20번도 25번이랑 마찬가지구요
34번만 이해가 안되네요 왜 디버깅과 출력이 다른건지
안녕하세요. 길벗 수험서 운영팀입니다.
해당 문제는 20, 25번과는 조금 다릅니다.
int i, hap = 0;
for(i = 1; i <= 10; ++i, hap += i);
System.out.printf("%d, %d\n", i, hap);
위의 25번 문제의 for문은 마지막에 세미콜론(;)이 포함됨으로써 자기 반복만을 하고 종료합니다.
하지만 34번 문제의 경우
int i = 0, hap = 0;
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
for문 안에 printf함수가 포함되어 있는 형태로 for문만이 아닌 printf문 또한 같이 반복되게 됩니다.
즉, i가 1부터 5까지 증가하는 동안 그 아래의 system.out.printf()문 또한 반복하게 되죠.
프로그램 코드에서 세미콜론(;)이 어디에서 끝나는지 주의해서 확인하시면서 다시 한 번 디버깅 해보세요.
행복한 하루되세요.^^
-
*2018-09-27 16:22:37
안녕하세요. 길벗 수험서 운영팀입니다.
해당 문제는 20, 25번과는 조금 다릅니다.
int i, hap = 0;
for(i = 1; i <= 10; ++i, hap += i);
System.out.printf("%d, %d\n", i, hap);위의 25번 문제의 for문은 마지막에 세미콜론(;)이 포함됨으로써 자기 반복만을 하고 종료합니다.
하지만 34번 문제의 경우
int i = 0, hap = 0;
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);for문 안에 printf함수가 포함되어 있는 형태로 for문만이 아닌 printf문 또한 같이 반복되게 됩니다.
즉, i가 1부터 5까지 증가하는 동안 그 아래의 system.out.printf()문 또한 반복하게 되죠.
프로그램 코드에서 세미콜론(;)이 어디에서 끝나는지 주의해서 확인하시면서 다시 한 번 디버깅 해보세요.
행복한 하루되세요.^^