다른분이 이문제 올리신거 봤는데 조금 다른부분에 대한 질문이라서요
a= 0~10 까지인거는 알겠는데요
x가 9일 때 ++x로 인해 x는 먼저 10으로 바뀌게 되는거라고 생각하는데요.
*x < *y 이부분!
10은 10이랑 같기 때문에
*z += *x; 이건 실행안하고 끝나야 되는거 아닌가요? z는 45로 끝나야 되는거구요.
55까지 출력할려면 while(*x<=*y) 이렇게 되어야 되는거 아닌가 싶은데
설명 부탁드립니다.
안녕하세요.
*x가 9일 때 while(*x < *y)의 조건이 만족하여 다시 반복문을 진입합니다. 이때 *z는 45인 상태입니다.
반복문 안에서
++*x를 만나 *x는 10이 됩니다.
*z = *z + *x를 만나 *z는 55가 됩니다.
반복문 종료 브래이스(})를 만나 반복문의 시작 위치로 제어가 이동하여
while(*x < *y) 조건을 비교합니다. 조건을 만족하지 않으므로 반복문을 수행하지 않고 빠져나옵니다.
현재 *x는 10, *z는 55인 상태입니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-23 11:32:47
안녕하세요.
*x가 9일 때 while(*x < *y)의 조건이 만족하여 다시 반복문을 진입합니다. 이때 *z는 45인 상태입니다.
반복문 안에서
++*x를 만나 *x는 10이 됩니다.
*z = *z + *x를 만나 *z는 55가 됩니다.
반복문 종료 브래이스(})를 만나 반복문의 시작 위치로 제어가 이동하여
while(*x < *y) 조건을 비교합니다. 조건을 만족하지 않으므로 반복문을 수행하지 않고 빠져나옵니다.
현재 *x는 10, *z는 55인 상태입니다.
오늘도 즐거운 하루 되세요.