245쪽 마지막에 있는 반복문에서 i=i-1 이 부분이 이해가 안갑니다.
설명 부탁드려요!
안녕하세요.
문제를 보면
반 배정을 하고 나서 다음 반 배정은 4명을 건너뛴 다음에 배정을 하는데, 건너뛰는 4명 안에 이미 반이 배정된 학생이 있다면 건너뛰는 4명에 포함되지 않아야 합니다.
마지막 반복문은 i가 1부터 4까지 1씩 증가하면서 4명을 건너뛰는데, 혹 그 4명 가운데 반이 배정된 학생이 있다면
제외해야 하는 과정이 i = i - 1입니다.
i가 1인 상태로, 즉 1명을 건너뛴 상태로
A(NMG) <> 0 을 확인합니다. A(NMG), 즉 현재 배열의 값이 0이 아니면 이미 반이 배정되었으므로
1명을 건너뛴 i를 다시 -1 하여 4명에서 배제하는 것이죠.
이렇게 진행하다 보면 뒤로 갈 수록 건너뛰는 4명에서 배제되는 경우가 상당히 많아지므로 디버깅이 점점 복잡해 집니다.
그러니 배정되는 경우와 건너뛰는 경우를 구분할 수 있도록 색이 다른 펜으로 체크하면서 꼼꼼히 디버깅을 수행해야 합니다.
오늘도 즐거운 하루 되세요.
-
*2016-04-06 09:07:22
안녕하세요.
문제를 보면
반 배정을 하고 나서 다음 반 배정은 4명을 건너뛴 다음에 배정을 하는데, 건너뛰는 4명 안에 이미 반이 배정된 학생이 있다면 건너뛰는 4명에 포함되지 않아야 합니다.
마지막 반복문은 i가 1부터 4까지 1씩 증가하면서 4명을 건너뛰는데, 혹 그 4명 가운데 반이 배정된 학생이 있다면
제외해야 하는 과정이 i = i - 1입니다.
i가 1인 상태로, 즉 1명을 건너뛴 상태로
A(NMG) <> 0 을 확인합니다. A(NMG), 즉 현재 배열의 값이 0이 아니면 이미 반이 배정되었으므로
1명을 건너뛴 i를 다시 -1 하여 4명에서 배제하는 것이죠.
이렇게 진행하다 보면 뒤로 갈 수록 건너뛰는 4명에서 배제되는 경우가 상당히 많아지므로 디버깅이 점점 복잡해 집니다.
그러니 배정되는 경우와 건너뛰는 경우를 구분할 수 있도록 색이 다른 펜으로 체크하면서 꼼꼼히 디버깅을 수행해야 합니다.
오늘도 즐거운 하루 되세요.