while (P<77 ); 이 답안이 이해가 안됩니다. 저는 p<78 이라고 생각했는데,
77보다 작은동안 수행하면 p가 76까지만 실행되고 2x76까지만 나오는거 아닌가요? 저의 오류를 지적해주십시오 모르겠습니다. ㅜ
안녕하세요 길벗수험서 운영팀입니다.
p가 75일때 부터 디버깅을 해보죠.
563쪽 해설의 번호를 기준으로 설명드리겠습니다.
p=75
2번 p++ (p=76)
3번 q=78-p (q=2)
4번 m=q*p (m=2*76)
5번 h=h+m
6번!! - p<77 - 현재 p는 76이므로 다시 2번으로 돌아갑니다.
2번 p++ (p=77)
3번 q=78-p (q=1)
4번 m=q*p (m=1*77)
5번 h=h+m
6번!! - p<77 - 현재 p는 77이므로 do~while 반복문을 빠져나갑니다. 이 때 <78이었다면 한 번 더 수행하게 되어 필요없는 0*78이 h에 합산되는 과정을 수행하게 되겠죠.
반복문의 기준이 되는 조건이 계속 혼동되신다면 위와 같이 마지막 값 -1~ -2 수준에서만 디버깅을 손으로 직접 한줄씩 진행해보면 쉽게 파악하실 수 있습니다.
행복한 하루되세요 :)
-
관리자2019-08-14 13:51:07
안녕하세요 길벗수험서 운영팀입니다.
p가 75일때 부터 디버깅을 해보죠.
563쪽 해설의 번호를 기준으로 설명드리겠습니다.
p=75
2번 p++ (p=76)
3번 q=78-p (q=2)
4번 m=q*p (m=2*76)
5번 h=h+m
6번!! - p<77 - 현재 p는 76이므로 다시 2번으로 돌아갑니다.
2번 p++ (p=77)
3번 q=78-p (q=1)
4번 m=q*p (m=1*77)
5번 h=h+m
6번!! - p<77 - 현재 p는 77이므로 do~while 반복문을 빠져나갑니다. 이 때 <78이었다면 한 번 더 수행하게 되어 필요없는 0*78이 h에 합산되는 과정을 수행하게 되겠죠.
반복문의 기준이 되는 조건이 계속 혼동되신다면 위와 같이 마지막 값 -1~ -2 수준에서만 디버깅을 손으로 직접 한줄씩 진행해보면 쉽게 파악하실 수 있습니다.
행복한 하루되세요 :)