티스토리 뷰

이번에 소개할 for문은 프로그래밍을 할 때 가장 많이 쓰는 문장이 아닐까 싶습니다. for문은 C언어 뿐만 아니라 C++, Java, Python 등 거의 대부분의 언어에 존재하고 문법적으로 형태는 조금씩 다르지만 사용 방법엔 큰 차이가 없기 때문에 한 번만 개념을 제대로 잡아 놓으시면 다른 언어에서도 큰 어려움 없이 사용하실 수 있을 겁니다.


for (초기식; 조건식; 증감식) {
    statement;
}



이는 for문의 가장 기본적인 형태입니다. 초기식은 루프가 처음 시작할 때 한 번만 실행됩니다. 그렇기 때문에 일반적으로 변수를 초기화합니다. 조건식은 말 그대로 조건을 검사하는 식이며 루프에 들어가기 전에 매번 검사가 진행됩니다. 이 값이 참일 경우 계속 루프가 계속해서 반복되고 거짓일 경우 루프를 빠져 나옵니다. 마지막으로 증감식은 루프가 끝날 때마다 실행되며, 일반적으로 변수를 증감하는 식이 들어갑니다. 반복할 문장이 여러 문장일 경우, 반드시 중괄호({})로 감싸야 하며 1개의 문장이라면 중괄호는 생략할 수 있습니다. 또한 초기식, 조건식, 증감식도 모두 생략이 가능한며 조건식이 생략될 경우, 참으로 간주합니다.


for (int i = 0; i < 5; i++) {    // C99 이전의 컴파일러에서는 초기식에서 변수를 초기화할 수 없음
    printf("반복 횟수 : %d\n", i + 1);
}



반복 횟수 : 1

반복 횟수 : 2

반복 횟수 : 3

반복 횟수 : 4

반복 횟수 : 5


위 예는 가장 일반적인 형태의 for문입니다. 보시는 바와 같이 초기식에서 조건식에서 사용할 변수를 초기화하고 조건식에서는 그 변수가 5보다 작은 경우 참이 됩니다. 그리고 증감식에서 루프가 끝날 때마다 변수의 값이 1씩 증가하면서 5회를 반복하면 변수의 값이 5가 되어 조건식이 거짓이 되므로 루프를 빠져나오게 됩니다.


간혹 프로그래밍을 처음 배우신 분 중에 또다른 반복문인 while문과 for문 중에 어느 것을 써야하는지 궁금해 하시는 분들이 계시는데 거의 모든 상황에서 서로 변환이 가능하므로 정해진 정답은 없습니다. 다만, 일반적으로 while문은 어떤 조건을 만족할 때까지 반복하고 싶을 때 사용하고, for문은 위 예제와 같이 일정한 횟수를 반복하고 싶을 때 사용합니다.


이번에는 많은 C언어 입문서에서 for문을 이용한 예제로 많이 등장하는 별찍기와 구구단 출력 프로그램을 만들어보겠습니다.


#include <stdio.h>
 
int main()
{
    int i, j;
 
    for (i = 0; i < 5; i++) {
        for (j = 0; j <= i; j++)
            printf("*");
        printf("\n");
    }
 
    return 0;
}



*

**

***

****

*****


먼저 별찍기 프로그램입니다. 보시는 바와 같이 1라인에선 별 1개, 2라인에선 별 2개 이런 식으로 라인이 늘어남에 따라 별 개수도 늘어납니다. 프로그래밍 스타일에 따라 각 변수의 초기값이나 조건식이 조금씩 다를 수는 있으나 전체적으로는 이와 비슷한 모습을 보입니다. 간혹 개수를 역으로 출력하는 프로그램을 만들라는 예제도 나오는데 힌트를 드리자면 for문에서 이용하는 두 개의 변수 중 하나를 조건식에서 <, <=가 아닌 >, >=를 이용하고 증감식에서 ++가 아닌 --를 이용하시면 쉽게 구현하실 수 있을 겁니다.


#include <stdio.h>
 
int main()
{
    int i, j;

    for (i = 1; i <= 9; i++) {
        for (j = 1; j <= 9; j++)
            printf("%d x %d = %d\n", i, j, i * j);
        printf("\n");
    }
 
    return 0;
}



1 x 1 = 1

1 x 2 = 2

1 x 3 = 3

1 x 4 = 4

1 x 5 = 5

1 x 6 = 6

1 x 7 = 7

1 x 8 = 8

1 x 9 = 9


.

.

.


9 x 1 = 9

9 x 2 = 18

9 x 3 = 27

9 x 4 = 36

9 x 5 = 45

9 x 6 = 54

9 x 7 = 63

9 x 8 = 72

9 x 9 = 81


다음으로 구구단 출력 프로그램입니다. 보시는 바와 1단부터 9단까지 모든 구구단이 출력됩니다. 간혹 사용자에게 입력을 받아 몇 단부터 몇 단까지 출력하라는 예제가 있기도 한데 외부 for문의 변수가 각 단수를 결정하므로 이를 이용하시면 쉽게 구현하실 수 있으실 겁니다.




댓글