책 내용 질문하기
115p 20번 질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
115
조회수
71
작성일
2018-12-04
작성자
탈퇴*원
첨부파일

int a , hap=0;

for(a = 0; a <10; ++a, hap +=a);

이거 a와 hap을 출력하는 문제입니다.

 

풀이에는 ++a후 hap+=a 를 순차적으로 하라고했는데

 

a가 9일때 ++a해주면 a10이 되고 hap은 45가 되는데  왜 a<10인데 hap에 10을 더해주는지 잘 이해가 되지않습니다..

 

글을 잘 못써서 이해하실지는 모르겟지만..   뭐랄까.. for문 내에서의 순서? 정확하게 이해하고 싶은데 쉽지가 않네요.. 

답변
2018-12-05 10:05:07

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

 

일반적인 for문의 프로세스는 아래와 같습니다.

 

for(; ; ) { 

  ④;

}

 

위의 for문이 3회 반복한다고 가정했을 때, 순서는

1: , (조건 참),

2③, (조건 참),

3③, (조건 참),

4③, (조건 거짓) <탈출>

 


그럼 이제 해당 문제에 적용해 보겠습니다. 해당 문제를 위와 같은 방식으로 쓰자면

for(③, ⑤) { 

  ④;

}

 

이렇게 ③에 ⑤가 추가된 형식입니다. 적용하게 되면 ③ 뒤에 바로 ⑤를 추가해 주면 됩니다.

1회(a=0) (조건 참), 

2회(a=1) ③, ⑤, (조건 참), 

3회(a=2) ③, ⑤, (조건 참), 

4회(a=3) ③, ⑤, (조건 참), 

5회(a=4) ③, ⑤, (조건 참), 

6회(a=5) ③, ⑤, (조건 참), 

7회(a=6) ③, ⑤, (조건 참), 

8회(a=7) ③, ⑤, (조건 참), 

9회(a=8) ③, ⑤, (조건 참), 

10회(a=9) ③, ⑤, (조건 참),  

11회(a=10) ③, ⑤, (조건 거짓) <탈출>

 

위와 같이 거짓이 되는 11회차의 경우에도 ③(문제에서의 ++a)이 수행됨과 동시에 ⑤(hap+=a) 또한 수행되면서 마지막 10(변수 a)까지 더해주는 것입니다.

 

행복한 하루 되세요 :)

  • 관리자
    2018-12-05 10:05:07

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

     

    일반적인 for문의 프로세스는 아래와 같습니다.

     

    for(; ; ) { 

      ④;

    }

     

    위의 for문이 3회 반복한다고 가정했을 때, 순서는

    1: , (조건 참),

    2③, (조건 참),

    3③, (조건 참),

    4③, (조건 거짓) <탈출>

     


    그럼 이제 해당 문제에 적용해 보겠습니다. 해당 문제를 위와 같은 방식으로 쓰자면

    for(③, ⑤) { 

      ④;

    }

     

    이렇게 ③에 ⑤가 추가된 형식입니다. 적용하게 되면 ③ 뒤에 바로 ⑤를 추가해 주면 됩니다.

    1회(a=0) (조건 참), 

    2회(a=1) ③, ⑤, (조건 참), 

    3회(a=2) ③, ⑤, (조건 참), 

    4회(a=3) ③, ⑤, (조건 참), 

    5회(a=4) ③, ⑤, (조건 참), 

    6회(a=5) ③, ⑤, (조건 참), 

    7회(a=6) ③, ⑤, (조건 참), 

    8회(a=7) ③, ⑤, (조건 참), 

    9회(a=8) ③, ⑤, (조건 참), 

    10회(a=9) ③, ⑤, (조건 참),  

    11회(a=10) ③, ⑤, (조건 거짓) <탈출>

     

    위와 같이 거짓이 되는 11회차의 경우에도 ③(문제에서의 ++a)이 수행됨과 동시에 ⑤(hap+=a) 또한 수행되면서 마지막 10(변수 a)까지 더해주는 것입니다.

     

    행복한 하루 되세요 :)

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