책 내용 질문하기
1권 123쪽 28번
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
123
조회수
296
작성일
2019-10-07
작성자
탈퇴*원
첨부파일
for(int i=0; i<5; i++, p*=i); 에서
i++ 은 후치 연산?이라서 p*=i까지 다 한 후에 연산되는 게 아닌가요??
1. i=0
2. p*=i
3. i++
4. i<5 판별
5. p*=i
6. i++
7. i<5 판별
이런 순서가 아닌지 궁금합니다.
117쪽 13번에서는 hap 연산이 다 끝난 후 b--와 c-- 되었어서 헷갈립니다.
답변
2019-10-08 16:16:59
안녕하세요 길벗수험서 운영팀입니다.
쉼표로 끊어진 수식은 전혀 별개의 식으로, 전치연산과 후치연산의 차이가 존재하지 않습니다.
i++, p*=i 는
i++;
p*=i;
와 동일합니다. 전치수식이나 후치수식이 식에 영향을 주는 건 자신이 포함된 수식 내에서만 반영됩니다. (117쪽의 13번과 같이 하나의 식 내에서만 영향을 줍니다.)
해당 for문의 순서는 다음과 같습니다.
1. i=0
2. i<5
3. 실행할 문장 - 해당 for문에는 없으므로 생략
4. i++
5. p*=i
6. i<5 - 결과 true
7. i++
8. p*=i
9. i<5 - 결과 true
...
이렇게 진행되다가 i<5의 결과가 false(거짓)이 되는 순간 벗어나게 됩니다.
행복한 하루되세요 :)
-
관리자2019-10-08 16:16:59
안녕하세요 길벗수험서 운영팀입니다.
쉼표로 끊어진 수식은 전혀 별개의 식으로, 전치연산과 후치연산의 차이가 존재하지 않습니다.
i++, p*=i 는
i++;
p*=i;
와 동일합니다. 전치수식이나 후치수식이 식에 영향을 주는 건 자신이 포함된 수식 내에서만 반영됩니다. (117쪽의 13번과 같이 하나의 식 내에서만 영향을 줍니다.)
해당 for문의 순서는 다음과 같습니다.
1. i=0
2. i<5
3. 실행할 문장 - 해당 for문에는 없으므로 생략
4. i++
5. p*=i
6. i<5 - 결과 true
7. i++
8. p*=i
9. i<5 - 결과 true
...
이렇게 진행되다가 i<5의 결과가 false(거짓)이 되는 순간 벗어나게 됩니다.
행복한 하루되세요 :)