책 내용 질문하기
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(거짓)이 되는 순간 벗어나게 됩니다.

     

    행복한 하루되세요 :)

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