118쪽 29번에서
a가 전위연산이라 a를 먼저 더해서 a가 1이되고 그후에 b=b-a를 해서 10-1 해서 a=0일때 b=9가 되야되는거 아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
콤마로 연이어서 나오는 식들은, 서로 별개의 식입니다.
즉, 다음과 같이 봐야합니다.
++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가 되는 것이죠.
행복한 하루되세요 :)