1권 p280 순서도 11번 A[K+1] = () 이 부분이 A[K] = () 으로 바꾸면 문제가 잘풀리는데,
A[K] = () 로 바꿔서 푸는게 맞나요?
안녕하세요.
반복문의 반복 변수가 반복문 바깥쪽에서 사용될 경우
반복 변수 최종값은 증가치가 한 번 더 적용된 상태로 벗어나기 때문에
A[K+1] 적용해야 합니다.
예를 들어
반복 k = i-1, 1, -1
을 i가 2일 때 진입하면 다음과 같이 진행됩니다.
k는 i-1, 즉 초기값 1을 가지고 최종값 1과 비교합니다. 1까지는 반복이 가능하므로 반복문을 수행합니다.
반복문을 수행한 후 반복문 처음으로 돌아와 증가값 -1을 적용합니다. i는 0이 됩니다.
그런 다음 최종값 1과 비교합니다. 0은 1보다 작으므로 조건을 만족하지 않아 반복문을 수행하지 않고 빠져나옵니다.
이 때 i는 0을 가지고 있습니다.
여기서 중요한 것은 반복문을 빠져나올때 반복변수의 값은 증가값이 한번 더 적용된 후 빠져나온다는 것입니다.
반복변수는 일반적으로 반복문 안에서만 사용하는데, 이 문제와 같이 반복문 바깥쪽에서도 사용될 경우 반복문을 빠져나올 때 반복변수의 값이 중요합니다.
오늘도 즐거운 하루 되세요.
-
*2017-04-03 09:28:32
안녕하세요.
반복문의 반복 변수가 반복문 바깥쪽에서 사용될 경우
반복 변수 최종값은 증가치가 한 번 더 적용된 상태로 벗어나기 때문에
A[K+1] 적용해야 합니다.
예를 들어
반복 k = i-1, 1, -1
을 i가 2일 때 진입하면 다음과 같이 진행됩니다.
k는 i-1, 즉 초기값 1을 가지고 최종값 1과 비교합니다. 1까지는 반복이 가능하므로 반복문을 수행합니다.반복문을 수행한 후 반복문 처음으로 돌아와 증가값 -1을 적용합니다. i는 0이 됩니다.
그런 다음 최종값 1과 비교합니다. 0은 1보다 작으므로 조건을 만족하지 않아 반복문을 수행하지 않고 빠져나옵니다.
이 때 i는 0을 가지고 있습니다.
여기서 중요한 것은 반복문을 빠져나올때 반복변수의 값은 증가값이 한번 더 적용된 후 빠져나온다는 것입니다.
반복변수는 일반적으로 반복문 안에서만 사용하는데, 이 문제와 같이 반복문 바깥쪽에서도 사용될 경우 반복문을 빠져나올 때 반복변수의 값이 중요합니다.
오늘도 즐거운 하루 되세요.