반복문에서 K가 0을 갖고 반복문을 탈출한다고 하셨는데 반복문에서 k는 i-1부터 1까지 -1씩 줄어드는데 어떤 부분에서 0으로 값을 가지는지 궁금합니다.
그리고 디버깅 과정에서 K의 값이 i가 2와 4일때는 0까지 디버깅 완료하는데, i가 3과 5일때는 1에서 디버깅이 끝나는 이유도 궁금합니다.
안녕하세요.
반복문의 반복 원리 때문입니다.
예를 들어
반복 k = i-1, 1, -1 에서
i가 2일 때 진입하면 다음과 같이 진행됩니다.
k는 i-1, 즉 초기값 1을 가지고 최종값 1과 비교합니다. 1까지는 반복이 가능하므로 반복문을 수행합니다.
반복문을 수행한 후 반복문 처음으로 돌아와 증가값 -1을 적용합니다. i는 0이 됩니다.
그런 다음 최종값 1과 비교합니다. 0은 1보다 작으므로 조건을 만족하지 않아 반복문을 수행하지 않고 빠져나옵니다.
이 때 i는 0을 가지고 있습니다. 즉 최종값보다 증가값(-1)이 한 번 더 적용된 값을 가지고 빠져나오게 됩니다.
여기서 중요한 것은 반복문을 빠져나올때 반복변수의 값은 증가값이 한번 더 적용된 후 빠져나온다는 것입니다.
반복변수는 일반적으로 반복문 안에서만 사용하는데, 이 문제와 같이 반복문 바깥쪽에서도 사용될 경우 반복문을 빠져나올 때 반복변수의 값이 중요합니다.
또한 반복문을 모두 완료하지 않고 중간에 ⑨번 조건에 의해 No가 되는 경우는 중간에 반복문을 탈출합니다.
이때는 탈출할 때의 k값을 가지고 바로 탈출하기에 반복문을 모두 반복할 때 증가값이 한 번 더 적용되는 원리가 적용되지 않고 바로 탈출합니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-29 10:40:23
안녕하세요.
반복문의 반복 원리 때문입니다.
예를 들어
반복 k = i-1, 1, -1 에서
i가 2일 때 진입하면 다음과 같이 진행됩니다.
k는 i-1, 즉 초기값 1을 가지고 최종값 1과 비교합니다. 1까지는 반복이 가능하므로 반복문을 수행합니다.반복문을 수행한 후 반복문 처음으로 돌아와 증가값 -1을 적용합니다. i는 0이 됩니다.
그런 다음 최종값 1과 비교합니다. 0은 1보다 작으므로 조건을 만족하지 않아 반복문을 수행하지 않고 빠져나옵니다.
이 때 i는 0을 가지고 있습니다. 즉 최종값보다 증가값(-1)이 한 번 더 적용된 값을 가지고 빠져나오게 됩니다.
여기서 중요한 것은 반복문을 빠져나올때 반복변수의 값은 증가값이 한번 더 적용된 후 빠져나온다는 것입니다.
반복변수는 일반적으로 반복문 안에서만 사용하는데, 이 문제와 같이 반복문 바깥쪽에서도 사용될 경우 반복문을 빠져나올 때 반복변수의 값이 중요합니다.
또한 반복문을 모두 완료하지 않고 중간에 ⑨번 조건에 의해 No가 되는 경우는 중간에 반복문을 탈출합니다.
이때는 탈출할 때의 k값을 가지고 바로 탈출하기에 반복문을 모두 반복할 때 증가값이 한 번 더 적용되는 원리가 적용되지 않고 바로 탈출합니다.
오늘도 즐거운 하루 되세요.