26.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 반복문의 초깃값 부분에서 counti에 할당하였습니다. 그리고 조건식은 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--)