책 내용 질문하기
for문 후위연산자
도서
2023 시나공 정보처리기사 실기
페이지
233
조회수
217
작성일
2023-07-10
작성자
탈퇴*원
첨부파일

문제28번에 i++ 후위 연산이니까 처음에 p=1, i=0으로 시작해서 p=p*i=0 먼저 계산 후에 i가 1이 되니까 p가 0이 되는거 아닌가요?... 후위연산인데 왜 i를 먼저 증가시키고 p를 계산하는건가요?

답변
2023-07-12 09:13:56

안녕하세요 기억상자입니다.

 

i가 후치 연산자이므로 나중에 계산되어야 한다고 생각하시는 분들이 있으나, 전치/후치 연산이 먼저 또는 나중에 수행되는 것을 '식'을 기준으로 합니다.

 

식은 세미콜론; 또는 쉼표, 로 구분되며 for문은 일반적으로 3개의 식으로 구성됩니다.

for ( 식1; 식2; 식3 )

해당 문제의 경우는 쉼표까지 사용하여 식3을 두개로 나눔으로써

for ( 식1; 식2; 식3, 식4) 로 되었습니다.

 

여기서 i++은 쉼표로 구분된 단일 식으로, 식 수행 전에 수행하든, 후에 수행하든 결과가 동일해집니다. 후치 연산이 완료된 후에나 다음 식인 p *= i가 수행된다는 뜻이죠.

즉, 이 i++은 ++i로 교체되든, i=i+1 또는 i+=1로 교체되든 결과에 어떠한 영향도 주지 못한다는 것입니다.

 

행복한 하루되세요 :)

  • 관리자
    2023-07-12 09:13:56

    안녕하세요 기억상자입니다.

     

    i가 후치 연산자이므로 나중에 계산되어야 한다고 생각하시는 분들이 있으나, 전치/후치 연산이 먼저 또는 나중에 수행되는 것을 '식'을 기준으로 합니다.

     

    식은 세미콜론; 또는 쉼표, 로 구분되며 for문은 일반적으로 3개의 식으로 구성됩니다.

    for ( 식1; 식2; 식3 )

    해당 문제의 경우는 쉼표까지 사용하여 식3을 두개로 나눔으로써

    for ( 식1; 식2; 식3, 식4) 로 되었습니다.

     

    여기서 i++은 쉼표로 구분된 단일 식으로, 식 수행 전에 수행하든, 후에 수행하든 결과가 동일해집니다. 후치 연산이 완료된 후에나 다음 식인 p *= i가 수행된다는 뜻이죠.

    즉, 이 i++은 ++i로 교체되든, i=i+1 또는 i+=1로 교체되든 결과에 어떠한 영향도 주지 못한다는 것입니다.

     

    행복한 하루되세요 :)

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