책 내용 질문하기
1권 71페이지 for 반복문 질문입니다.
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
71
조회수
238
작성일
2020-06-14
작성자
탈퇴*원

71페이지 4번 문제 for문에 증감연산자 때문에 질문드립니다.

 

for(i=1; i<=10; ++i)

   hap += i;

위의 부분인데 i=1일때 증감연산자가 ++i 이면 

전위연산자는 문장이 끝나기 전에 연산(증감)이 완료되니까

for문 한번이 끝나기 전에 ++i가 적용되어 i=2가 되어 계산이 될 줄 알았는데 i=1로 계산이 되더라구요. 

i가 hap += i; 문장이 끝나고 i가 증가가 되는 것 일까요?

그럼 i++이랑 ++i랑 차이가 없는 것 같은데 어떤 차이가 있습니까 ?

 

for문의 증감연산자는 후위와 전위일 때 어느 시점에서 증감이 되는 것인지 궁금해서 문의를 올립니다!

 

답변
2020-06-15 20:00:48

안녕하세요 길벗수험서 운영팀입니다.

 

아무런 차이도 존재하지 않습니다.

 

전치, 후치 증감 연산자는 '하나의 식' 내에서만 그 차이가 발생합니다.

하나의 식은 쉼표(,), 세미콜론(;)으로 구분되며,

단순히 홀로 ++i로 써진 식은 i++, i=i+1과 차이가 없게 됩니다.

 

전치, 후치 증감 연산자라는게, "식을 수행하기 전/후에 값을 증/감해라"라는 연산을 수행하기 위함이므로 단독으로 사용된다면 단순히 1 더하고 빼는 것과 다를바 없어지죠.

 

 

모든 for문의 경우 마지막 반복 수행이 끝나면

(증가식) -> (조건식) -> 거짓판명! 탈출!

을 수행하기 때문에 위의 for문( for(i=1;i<=10;++i))의 경우로 따지면 i는 11이 되고 끝납니다.

당연히 ++i가 아닌 i++이 증가식에 들어가도 동일한 결과가 나타납니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-06-15 20:00:48

    안녕하세요 길벗수험서 운영팀입니다.

     

    아무런 차이도 존재하지 않습니다.

     

    전치, 후치 증감 연산자는 '하나의 식' 내에서만 그 차이가 발생합니다.

    하나의 식은 쉼표(,), 세미콜론(;)으로 구분되며,

    단순히 홀로 ++i로 써진 식은 i++, i=i+1과 차이가 없게 됩니다.

     

    전치, 후치 증감 연산자라는게, "식을 수행하기 전/후에 값을 증/감해라"라는 연산을 수행하기 위함이므로 단독으로 사용된다면 단순히 1 더하고 빼는 것과 다를바 없어지죠.

     

     

    모든 for문의 경우 마지막 반복 수행이 끝나면

    (증가식) -> (조건식) -> 거짓판명! 탈출!

    을 수행하기 때문에 위의 for문( for(i=1;i<=10;++i))의 경우로 따지면 i는 11이 되고 끝납니다.

    당연히 ++i가 아닌 i++이 증가식에 들어가도 동일한 결과가 나타납니다.

     

    행복한 하루되세요 :)

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