책 내용 질문하기
기출 따라잡기 문제 4
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
76
조회수
93
작성일
2018-09-15
작성자
탈퇴*원
첨부파일

디버깅 결과가 이해가 안됩니다.

교재에 나와있는 디버깅 결과

i hap 출력

10 0 12

9 7

8 11

7 12

6

5

4

3

2

1

개인적인 디버깅 결과

i hap 출력

10 0 12

9 0

8 7

7 7

6 7

5 11

4 11

3 11

2 11

1 12

어떻게 i가 9일 때 hap값이 7이 나오나요?

while(9>1)

{

9 - 1 = 8;

if( 8 % 3 == 1 )

hap = hap + i;

}

i가 9일 때 if문 괄호 안의 내용( 8 % 3 == 1 )이 거짓이므로

hap = hap + i가 실행되지 않고 while문 처음으로 돌아가기 때문에

이때 hap의 값은 맨 처음 초기화 했던 0 아닌가요?

이해가 안갑니다. 도와주세요...

답변
2018-09-17 16:27:17

안녕하세요. 길벗 수험서 운영팀입니다.

일반적인 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.

단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.

즉, 해당 문제에서 hap이 7이 되는 경우는 i가 7이 되었을 때이며, 11이 되는 경우는 i가 4가 되었을 때, 12가 되는 경우는 i가 1이 되었을 때 입니다.

간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.

행복한 하루되세요.^^

  • *
    2018-09-17 16:27:17

    안녕하세요. 길벗 수험서 운영팀입니다.

    일반적인 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.

    단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.

    즉, 해당 문제에서 hap이 7이 되는 경우는 i가 7이 되었을 때이며, 11이 되는 경우는 i가 4가 되었을 때, 12가 되는 경우는 i가 1이 되었을 때 입니다.

    간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.

    행복한 하루되세요.^^

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