1~4번째 코드가 동일하게 15가 나온다고 하는데
2,4번의 경우 조건식이 a<5, a++<5 인데 어떻게 이게 15가 나올 수 있는지 궁금합니다.
특히 2번의 경우에는 증가값이 후위증가값인 것을 감안한다고 해도 조건식이 a<5 이므로 조건식에 부합되지 않아 계산이 불가한 것 아닌가요?
그렇기 때문에 2번의 경우 a=0,1,2,3,4 일 때만 hap 연산되어 답은 10이 나와야 되지 않습니까?
그리고 4번의 경우에는 a++이 5보다 작아야 한다고 하는데 정확히 무슨 뜻인지 이해가 되질 않습니다.
a=0,1,2,3,4 의 경우에만 hap 계산이 가능하여 답은 10 아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
[2번 문제]
int a, hap = 0;
for (a = 0; a < 5; a++, hap += a);
후치수식의 경우 '식'을 기준으로 전치와 후치를 계산합니다.
for문의 경우 일반적으로 3개의 식을 사용합니다. for(식1; 식2; 식3)
하지만 이 경우 4개가 사용되었죠. (쉼표(,)는 식을 구분할 때 사용하는 구분자입니다.)
for(식1; 식2; 식3, 식4)
이 때 a++은 단일로 사용되는 하나의 식이므로, a=a+1과 동일합니다. 때문에 뒤의 hap+=a에는 a++이 수행되어 a가 증가한 값이 hap에 더해지게 되죠.
[4번 문제]
int a, hap = 0;
for (a = 0; a++ < 5;)
hap += a;
579쪽 for문의 순서도를 참고해주세요.
for문이 처음 수행되면
1회에는 초기값 -> 조건식(참) -> 실행할코드
2회부터는 증가값 -> 조건식(참) -> 실행할코드
마지막에는 증가값 -> 조건식(참) -> 실행할코드, 를 수행한 후, 증가값 -> 조건식(거짓) 으로 빠져나가게 됩니다.
때문에 초기값 -> 조건식(a++<5 = 0<5)을 수행하고 나면 a는 1이 되고, 그 다음 실행할코드를 수행하게 되죠.
행복한 하루되세요 :)
-
관리자2020-04-08 11:49:57
안녕하세요 길벗수험서 운영팀입니다.
[2번 문제]
int a, hap = 0;
for (a = 0; a < 5; a++, hap += a);
후치수식의 경우 '식'을 기준으로 전치와 후치를 계산합니다.
for문의 경우 일반적으로 3개의 식을 사용합니다. for(식1; 식2; 식3)
하지만 이 경우 4개가 사용되었죠. (쉼표(,)는 식을 구분할 때 사용하는 구분자입니다.)
for(식1; 식2; 식3, 식4)
이 때 a++은 단일로 사용되는 하나의 식이므로, a=a+1과 동일합니다. 때문에 뒤의 hap+=a에는 a++이 수행되어 a가 증가한 값이 hap에 더해지게 되죠.
[4번 문제]
int a, hap = 0;
for (a = 0; a++ < 5;)
hap += a;
579쪽 for문의 순서도를 참고해주세요.
for문이 처음 수행되면
1회에는 초기값 -> 조건식(참) -> 실행할코드
2회부터는 증가값 -> 조건식(참) -> 실행할코드
마지막에는 증가값 -> 조건식(참) -> 실행할코드, 를 수행한 후, 증가값 -> 조건식(거짓) 으로 빠져나가게 됩니다.
때문에 초기값 -> 조건식(a++<5 = 0<5)을 수행하고 나면 a는 1이 되고, 그 다음 실행할코드를 수행하게 되죠.
행복한 하루되세요 :)