27.7 입력한 횟수대로 반복하기
이번에는 입력한 횟수대로 반복을 해보겠습니다. 다음 내용을 소스 코드 편집 창에 입력하세요.
for_scanf_increment.c
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 #include <stdio.h> int main() { int count; scanf("%d", &count); // 값을 입력받음 for (int i = 0; i < count; i++) // 0부터 입력받은 값보다 작을 때까지 반복 { printf("Hello, world! %d\n", i); } return 0; }
소스를 컴파일하여 실행한 뒤 5를 입력하고 엔터 키를 누르세요.
실행 결과
5 (입력) Hello, world! 0 Hello, world! 1 Hello, world! 2 Hello, world! 3 Hello, world! 4
scanf함수로 입력 값을 받아서 count 변수에 저장했습니다. 그리고 for 반복문의 조건식에서 i < count와 같이 지정하여 count에 들어있는 값보다 작을 때까지 반복하도록 하였습니다. 여기서는 5를 입력했으므로 Hello, world!는 5번만 출력됩니다.
이번에는 초깃값을 받은 뒤 초깃값만큼 출력해보겠습니다.
for_scanf_decrement.c
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 #include <stdio.h> int main() { int count; scanf("%d", &count); // 값을 입력받음 for (int i = count; i > 0; i--) // 입력받은 값을 감소시키면서 반복 { printf("Hello, world! %d\n", i); } return 0; }
실행 결과
5 (입력) Hello, world! 5 Hello, world! 4 Hello, world! 3 Hello, world! 2 Hello, world! 1
scanf 함수로 입력 값을 받아서 count 변수에 저장한 뒤 for 반복문의 초깃값 부분에서 count를 i에 할당하였습니다. 그리고 조건식은 i > 0, 변화식은 i--로 지정하여 반복문이 실행될 때마다 i를 감소시키고 i가 0이 되면 반복문을 끝내도록 만들었습니다.
i를 따로 선언하지 않고, count를 그대로 사용할 수도 있습니다.
for_scanf_count.c
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 #include <stdio.h> int main() { int count; scanf("%d", &count); // 값을 입력받음 for (; count > 0; count--) // 초깃값 없이 scanf에서 사용한 변수를 감소시켜서 반복 { printf("Hello, world! %d\n", count); } return 0; }
실행 결과
5 (입력) Hello, world! 5 Hello, world! 4 Hello, world! 3 Hello, world! 2 Hello, world! 1
for의 초기식 부분이 비어있습니다. 즉, for 반복문에 사용할 변수와 초깃값이 준비되어 있으면 초깃값 부분을 생략할 수 있습니다. 그리고 조건식과 변화식 모두 count > 0, count--처럼 count 변수를 기준으로 만들면 됩니다.
참고
사실은 이렇게 초기식 부분에서 scanf 함수를 호출하는 방식으로도 작성할 수 있습니다.
for (scanf("%d", &count); count > 0; count--)