답이 6 15 24 33 42 라고 하는데 디버깅만 보고는 이해가 잘 안되는 데 해설 부탁드립니다
안녕하세요.
i는 0부터 5보다 작을때까지 1씩 증가하면서 안쪽 for문을 반복합니다.
j는 0부터 5보다 작을 때까지 2씩 증가하면서 반복 수행합니다.
과정을 살펴보면
i가 0을 가지고 바깥쪽 반복문을 진입합니다.
j는 0을 가지고 안쪽 반복문을 진입합니다.
k++;에 의해 k는 1이 됩니다.
a[i] += k; 에 의해 a[0]에 k값 1이 누적됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 2가 됩니다.
a[i] += k; 에 의해 a[0]에 k값 2가 누적됩니다. 기존 값에 누적되어 a[0]은 3이 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 3이 됩니다.
a[i] += k; 에 의해 a[0]에 k값 3이 누적됩니다. 기존 값에 누적되어 a[0]은 6이 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.
바깥쪽 반복문으로 돌아가 ++i에 의해 i는 1이 증가되어 1이 됩니다. i가 5보다 작으므로 반복문을 다시 진입합니다.
j는 0을 가지고 안쪽 반복문을 진입합니다.
k++;에 의해 k는 4가 됩니다.
a[i] += k; 에 의해 a[1]에 k값 4가 누적됩니다. 기존 값에 누적되어 a[1]은 4가 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 5가 됩니다.
a[i] += k; 에 의해 a[1]에 k값 5가 누적됩니다. 기존 값에 누적되어 a[1]은 9가 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 6이 됩니다.
a[i] += k; 에 의해 a[1]에 k값 6이 누적됩니다. 기존 값에 누적되어 a[1]은 15가 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.
이와 같이 반복을 수행합니다.
i가 0일 때 a[0]는 1, 3, 6을 거쳐 최종적으로 6이 저장되고
i가 1일 때 a[1]은 4, 9, 15를 거쳐 최종적으로 15가 저장되며
i가 2일 때 a[2]는 7, 15, 24를 거쳐 최종적으로 24가 저장됩니다.
이와 같이 i가 4일때까지 반복하여 디버깅 표와 같은 과정을 수행합니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-21 10:18:15
안녕하세요.
i는 0부터 5보다 작을때까지 1씩 증가하면서 안쪽 for문을 반복합니다.
j는 0부터 5보다 작을 때까지 2씩 증가하면서 반복 수행합니다.
과정을 살펴보면
i가 0을 가지고 바깥쪽 반복문을 진입합니다.
j는 0을 가지고 안쪽 반복문을 진입합니다.
k++;에 의해 k는 1이 됩니다.
a[i] += k; 에 의해 a[0]에 k값 1이 누적됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 2가 됩니다.
a[i] += k; 에 의해 a[0]에 k값 2가 누적됩니다. 기존 값에 누적되어 a[0]은 3이 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 3이 됩니다.
a[i] += k; 에 의해 a[0]에 k값 3이 누적됩니다. 기존 값에 누적되어 a[0]은 6이 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.
바깥쪽 반복문으로 돌아가 ++i에 의해 i는 1이 증가되어 1이 됩니다. i가 5보다 작으므로 반복문을 다시 진입합니다.
j는 0을 가지고 안쪽 반복문을 진입합니다.
k++;에 의해 k는 4가 됩니다.
a[i] += k; 에 의해 a[1]에 k값 4가 누적됩니다. 기존 값에 누적되어 a[1]은 4가 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 5가 됩니다.
a[i] += k; 에 의해 a[1]에 k값 5가 누적됩니다. 기존 값에 누적되어 a[1]은 9가 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.
k++;에 의해 k는 6이 됩니다.
a[i] += k; 에 의해 a[1]에 k값 6이 누적됩니다. 기존 값에 누적되어 a[1]은 15가 됩니다.
안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.
이와 같이 반복을 수행합니다.
i가 0일 때 a[0]는 1, 3, 6을 거쳐 최종적으로 6이 저장되고
i가 1일 때 a[1]은 4, 9, 15를 거쳐 최종적으로 15가 저장되며
i가 2일 때 a[2]는 7, 15, 24를 거쳐 최종적으로 24가 저장됩니다.
이와 같이 i가 4일때까지 반복하여 디버깅 표와 같은 과정을 수행합니다.
오늘도 즐거운 하루 되세요.