문제9번 질문입니다.
int i = 10, hap = 0;
while (i>1){
i--;
if(i%3 == 1)
hap += i;
}
printf("%d|n", hap)
이렇게 문제가 서술되어있는데 i--에서 후치연산으로 진행되니
i = 10일때 if조건에 만족하여 hap는 10이 되고, i는 후치연산되어 9로 감소하면서 다시 while문의 첫줄로 돌아가서 반복하여
i = 10, 9, 8, 7 , 6, 5, 4, 3, 2 일때
hap = 10,-, -, 17, - ,-, 21,-,- 이되어
정답은 21이 되어야하는것이 아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다.
sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐, i--; --i; i++; ++i; 와 같이 개별로 사용될 때는 그저 1을 증감시키는 역할 외에 다른 역할을 수행하지 못합니다.
해설에 적힌 것과 같이 i=i-1; 과 다를 바가 없는 것이죠.
행복한 하루되세요 :)
-
관리자2021-04-02 10:41:03
안녕하세요 길벗수험서 운영팀입니다.
전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다.
sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐, i--; --i; i++; ++i; 와 같이 개별로 사용될 때는 그저 1을 증감시키는 역할 외에 다른 역할을 수행하지 못합니다.
해설에 적힌 것과 같이 i=i-1; 과 다를 바가 없는 것이죠.
행복한 하루되세요 :)