책 내용 질문하기
정보처리기사 실기 문제 121p 36번 질문이요
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
121
조회수
33
작성일
2018-09-13
작성자
탈퇴*원
첨부파일

int i=1, hap=0;

while(i<=6){

hap+=i;

i+=2;

}

i의 초기값이 1이여서 i가 1일 때 hap이 0이고 다음에 i=3일 때 왜 hap의 값이 왜 1이 되나요?

답변
2018-09-14 14:55:26

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

hap에 i가 먼저 더해진 후, i 값에 2가 더해지기 때문입니다.

변수의 값이 변경되는 코드를 차례대로 설명해보면

① 초기값 i는 1, hap에는 0이 저장됩니다. → int i=1, hap=0

② hap에 i가 더해져 hap은 1이 됩니다. → hap+=i

③ i에 2가 더해져 i는 3이 됩니다. → i+=2

위와 같은 순서대로 디버깅표에 적었을 때 정답과 같은 디버깅표가 나옵니다.

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

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

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

행복한 하루되세요.^^

  • *
    2018-09-14 14:55:26

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

    hap에 i가 먼저 더해진 후, i 값에 2가 더해지기 때문입니다.

    변수의 값이 변경되는 코드를 차례대로 설명해보면

    ① 초기값 i는 1, hap에는 0이 저장됩니다. → int i=1, hap=0

    ② hap에 i가 더해져 hap은 1이 됩니다. → hap+=i

    ③ i에 2가 더해져 i는 3이 됩니다. → i+=2

    위와 같은 순서대로 디버깅표에 적었을 때 정답과 같은 디버깅표가 나옵니다.

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

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

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

    행복한 하루되세요.^^

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