책 내용 질문하기
질문
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
118
조회수
119
작성일
2019-10-08
작성자
탈퇴*원
첨부파일

118쪽 29번에서

 

a가 전위연산이라 a를 먼저 더해서 a가 1이되고 그후에 b=b-a를 해서 10-1 해서 a=0일때 b=9가 되야되는거 아닌가요?

답변
2019-10-10 10:32:29

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

 

콤마로 연이어서 나오는 식들은, 서로 별개의 식입니다.

즉, 다음과 같이 봐야합니다.

++a;

b =- a;

 

또한 디버깅 표의 경우 단순히 값의 변화를 나열하는 것에 지나지 않습니다.

처음 b=10으로 초기화 되어 시작한 후,

1. 초기값 a가 0이되고, 조건식 a<5를 탐색한 후(참), 실행할 코드가 없으니 바로 증가식으로 넘어갑니다. ++a를 수행한 후(a=1), b-=a를 수행하게 되죠.(b=9)

이렇게 반복하다가 a가 4인 상태부터는

 

조건식 a<5를 탐색한 후(참), ++a, b-=a를 수행하게 되면 a=5, b=-5가 됩니다.

마지막에 a<5를 탐색했을 때 a가 5이므로 거짓이 되어 for문을 빠져나가게 되면서 결과는 5, -5가 되는 것이죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-10-10 10:32:29

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

     

    콤마로 연이어서 나오는 식들은, 서로 별개의 식입니다.

    즉, 다음과 같이 봐야합니다.

    ++a;

    b =- a;

     

    또한 디버깅 표의 경우 단순히 값의 변화를 나열하는 것에 지나지 않습니다.

    처음 b=10으로 초기화 되어 시작한 후,

    1. 초기값 a가 0이되고, 조건식 a<5를 탐색한 후(참), 실행할 코드가 없으니 바로 증가식으로 넘어갑니다. ++a를 수행한 후(a=1), b-=a를 수행하게 되죠.(b=9)

    이렇게 반복하다가 a가 4인 상태부터는

     

    조건식 a<5를 탐색한 후(참), ++a, b-=a를 수행하게 되면 a=5, b=-5가 됩니다.

    마지막에 a<5를 탐색했을 때 a가 5이므로 거짓이 되어 for문을 빠져나가게 되면서 결과는 5, -5가 되는 것이죠.

     

    행복한 하루되세요 :)

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