책 내용 질문하기
디버깅 관련..
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
489
조회수
50
작성일
2017-09-11
작성자
탈퇴*원
첨부파일

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이라고 해도상관없는건가요??

답변
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를 출력하고 끝내게 됩니다.

오늘도 즐거운 하루 되세요.

  • *
    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를 출력하고 끝내게 됩니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.