책 내용 질문하기
34번 문제 질문이요
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
120
조회수
233
작성일
2019-06-22
작성자
탈퇴*원
첨부파일
반복문 for 중에 식1; 식2; 식3;이 있는데 식 3 중에 hap+=i 가 있습니다. 이것은 hap= hap+i 로 알고있는데요 i가 1로 들어오면 hap=hap+1로 hap에 1이 대입 될텐데 그럼 답은 합은1 1입니다. 이렇게 시작되어야 하는거 아닌가요?? 답이 1씩 밀리네요 제가 뭘 놓치고 있는거죠??
답변
2019-06-24 13:46:21

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

 

for문 각 식의 기본 수행순서를 놓치신 것 같습니다.

 

이 경우는 C의 for 반복문을 생각해보시면 됩니다.

 

for(①; ②; ③) {

   ④;

}

 

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

1회 : ①, ②(조건 참), ④

2회 : ③, ②(조건 참), ④

3회 : ③, ②(조건 참), ④

종료 : ③, ②(조건 거짓) <탈출>

입니다.


이 때, ③을 수행할 때  ++i, hap+=i 가 수행된다고 가정하고 다시 디버깅 해보세요.
먼저 i에 1이 저장되고, i<=5 를 판별한 뒤, i, hap을 출력하고,  (i=1, hap=0)
다음 i++로 2가 되고, hap에 i를 저장하여 hap은 2가 되고, i<=5를 판별한 뒤, i,hap을 출력합니다. (i=2, hap=2)
...

행복한 하루되세요 :)
  • 관리자
    2019-06-24 13:46:21

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

     

    for문 각 식의 기본 수행순서를 놓치신 것 같습니다.

     

    이 경우는 C의 for 반복문을 생각해보시면 됩니다.

     

    for(①; ②; ③) {

       ④;

    }

     

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

    1회 : ①, ②(조건 참), ④

    2회 : ③, ②(조건 참), ④

    3회 : ③, ②(조건 참), ④

    종료 : ③, ②(조건 거짓) <탈출>

    입니다.


    이 때, ③을 수행할 때  ++i, hap+=i 가 수행된다고 가정하고 다시 디버깅 해보세요.
    먼저 i에 1이 저장되고, i<=5 를 판별한 뒤, i, hap을 출력하고,  (i=1, hap=0)
    다음 i++로 2가 되고, hap에 i를 저장하여 hap은 2가 되고, i<=5를 판별한 뒤, i,hap을 출력합니다. (i=2, hap=2)
    ...

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