책 내용 질문하기
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)...행복한 하루되세요 :)