결과값이 x=5 y=5 z=10이 아닌가요? x=5일때는 *y보다 작지 않아서 while구문이 실행이 않되지 않나요?
안녕하세요.
537쪽 해설을 기준으로 설명을 드리면
마지막 ⑤회 수행 후 x는 5, y는 5, z는 15를 가지고 있습니다.
이 상태에서 ⑥회를 수행하면 While( *x < *y) 조건, 즉 x의 값이 y의 값보다 작지 않으므로, 조건에 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ⑤회 prnt() 함수로 옮깁니다.
x와 y값이 변경되지 않았으므로 즉 x가 y보다 작지 않으므로
⑤회 while 조건에도 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ④회 prnt() 함수로 옮깁니다. 같은 기준으로 ③ ~ ①회 prnt() 함수에서의 while 조건이 모두 어긋나므로
결국 처음 prnt() 함수를 호출한 main() 함수로 되돌아 갑니다.
이때 x는 5, y는 5, z는 15를 그대고 유지하고 있으므로 출력되는 값은
a=5, b=5, c=15가 됩니다.
오늘도 즐거운 하루 되세요.
-
관리자2019-03-26 10:02:21
안녕하세요.
537쪽 해설을 기준으로 설명을 드리면
마지막 ⑤회 수행 후 x는 5, y는 5, z는 15를 가지고 있습니다.
이 상태에서 ⑥회를 수행하면 While( *x < *y) 조건, 즉 x의 값이 y의 값보다 작지 않으므로, 조건에 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ⑤회 prnt() 함수로 옮깁니다.
x와 y값이 변경되지 않았으므로 즉 x가 y보다 작지 않으므로
⑤회 while 조건에도 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ④회 prnt() 함수로 옮깁니다. 같은 기준으로 ③ ~ ①회 prnt() 함수에서의 while 조건이 모두 어긋나므로
결국 처음 prnt() 함수를 호출한 main() 함수로 되돌아 갑니다.
이때 x는 5, y는 5, z는 15를 그대고 유지하고 있으므로 출력되는 값은
a=5, b=5, c=15가 됩니다.
오늘도 즐거운 하루 되세요.