489페이지 예상문제 20번 해답에 보면
반복횟수 a hap
0
1 0 0
2 1 1
3 2 3
4 3 6
5 4 10
등등등으로 되어있는데....
for(a = 0; a< 10; ++a, hap+=a);
문제가 이렇게되면 출력이
반복 1일때 a=0 => a++후 a = 1 => hap=1이 되는데...
그렇게 되면 디버깅에서도
○ 1 0 1
○ 1 1 1
위 2개중 하나가 되어야 맞는게아닌가요????
책에 나오는 디버깅을 하나도 이해가 제대로 안됩니다...
디버깅 읽는 방법을 좀 가르쳐주세요~
두번째로,
실기책 142페이지 에 보면
수열의 플로차트에서 5번의 답이 i>=99 인데 i>98이라고 해도상관없는건가요??
안녕하세요.
1)
for(a = 0; a< 10; ++a, hap+=a);
---- ---- ----------
초기값 종료값 증가값
초기값에 의해 a는 0을 가지고 반복문을 진입합니다.
반복문 아래쪽에 실행할 문장이 없이 반복문 for( ) 끝에 ; 이 있으므로 별도의 문장 반복없이 반복됩니다.
첫 번째 반복에서
a는 0 hap은 0 입니다.
반복할 내용이 없으므로 바로 증가값을 수행합니다.
증가값은 콤마(,) 연산자에 의해 2개의 식이 나열되어 있습니다.
먼저 ++a에 의해 a가 1이 됩니다. 이어서 hap += a, 즉 hap = hap + a에 의해 hap에 1이 저장됩니다.
두 번째 반복에서
a는 1 hap은 1 입니다.
이와 같은 과정으로 진행해 보면서 디버깅 표를 다시 한 번 살펴보세요.
2)
예, 맞습니다.
i가 99일 때까지 수행을 해야 하므로
검은색 2번 동그라미에서 i가 99가 되었다면
99까지 수행이 완료된 것입니다.
i가 99일 때
i >= 99나 i > 98 모두 yes가 되므로 J를 출력하고 끝내게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-09-12 10:53:35
안녕하세요.
1)
for(a = 0; a< 10; ++a, hap+=a);
---- ---- ----------
초기값 종료값 증가값
초기값에 의해 a는 0을 가지고 반복문을 진입합니다.
반복문 아래쪽에 실행할 문장이 없이 반복문 for( ) 끝에 ; 이 있으므로 별도의 문장 반복없이 반복됩니다.
첫 번째 반복에서
a는 0 hap은 0 입니다.
반복할 내용이 없으므로 바로 증가값을 수행합니다.
증가값은 콤마(,) 연산자에 의해 2개의 식이 나열되어 있습니다.
먼저 ++a에 의해 a가 1이 됩니다. 이어서 hap += a, 즉 hap = hap + a에 의해 hap에 1이 저장됩니다.
두 번째 반복에서
a는 1 hap은 1 입니다.
이와 같은 과정으로 진행해 보면서 디버깅 표를 다시 한 번 살펴보세요.
2)
예, 맞습니다.
i가 99일 때까지 수행을 해야 하므로
검은색 2번 동그라미에서 i가 99가 되었다면
99까지 수행이 완료된 것입니다.
i가 99일 때
i >= 99나 i > 98 모두 yes가 되므로 J를 출력하고 끝내게 됩니다.
오늘도 즐거운 하루 되세요.