c언어 for문 초기식을 배열로 정의했을 때 질문입니다.
조회수 510회
void dice(int count) {
int i;
if (n < count) {
print(n);
return;
}
for (i = arr[count - 1]; i <= 6; i++) {
arr[count] = i;
dice(count + 1);
}
}
입니다.
이 코드를 보면 count
는 메인 함수에서 dice(1)
로 매개변수를 줬습니다.
이 코드를 보면 이해가 안 가는 게, i
를 arr(count-1)
로 줬으면 i
가 arr
0번지부터 1씩 값을 증가시켜 저장한다는 뜻인가요? 이해가 안 갑니다 ㅠㅜㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
for (i = arr[count - 1]; i <= 6; i++) {
arr
의count-1
번째 요소를i
에 할당하고 다음 반복부터는i
를 7이 될 때까지 1씩 증가시킨다는 의미입니다.
추가 질문이 달려서 답변 수정합니다:
제가 이해를 못 했습니다.. i는 arr[count-1]로 초기화 시키고 i를 증가한다는 말을 잘 이해하지 못 하겠습니다.. 저는 for문을 할 때 i=0 or i=num; or i=num-1 이런 형태만 보아서요. 배열로 i의 값을 초기화 시키는데 i를 증가해서 배열에 넣는 것도 아니고.. 그럼 배열로 초기화를 시켜 줬을 때 i에 담긴 값은 변함이 없고 반복문만 6번 돈다는 말씀이신 건가요?
for (i = arr[count - 1]; i <= 6; i++) { // 반복문 }
int idx = arr[count - 1]; for (i = idx; i <= 6; i++) { // 반복문 }
위 두 코드의 실행 결과는 동일합니다.
i
를arr[count-1]
로 초기화한다는 말은, 말 그대로i
에arr
배열의count-1
번째에 있는 값을 할당한다... 입니다.증감식
i++
이 있기 때문에 당연히i
는 매 루프의 끝에서 1씩 증가하구요.
댓글 입력