C언어 반복문 (Loop)
반응형

기본 동작은 조건문을 만족하면 명령문이 반복됩니다. 조문을 만족하지 못하면 반복문은 끝이 납니다.

반복문을 간단히 다이어그램(Diagram)으로 표현하면 아래와 같습니다.

조건문이 참이면 소스코드가 실행되고 조건문을 만족 못하면 반복문은 끝이 납니다.

소스코드를 실행하기 전에 조건문을 검사하여 실행할지 안 할지를 결정합니다. 반복할 소스코드는 물결무늬 괄호({…}) 안에 작성되고 이를 반복문 바디(Loop body)라고 부릅니다.

반복문 종류

C언에는 다음과 같이 3가지 종류가 있습니다.

  1. while 루프
  2. for 루프
  3. do … while 루프

▣ while 루프(loop)

조건문 A가 참이면 B가 반복되고 거짓일 때 반복문은 끝납니다.

#include<stdio.h>

void main( )
{
    int x;
    x = 1;
    while(x <= 10)
    {
        printf("%d\t", x);

        /* x 값을 1씩 증가*/
        x++;
    }
}

OUTPUT
1 2 3 4 5 6 7 8 9 10

변수 x를 정의하고 1로 초기화하였습니다. 그리고 while 루프의 조건문은 x가 10일 때까지 반복합니다. 반복문 바디는 해당값을 출력하고 x의 값을 1씩 증가시킵니다.

▣ for 루프(loop)

  1. A에서 초기값을 설정합니다.
  2. B에서 조건문을 확인합니다.
  3. 조건문이 참일 경우 D가 실행됩니다.
  4. C에서 A의 초기값을 증가 혹은 감소시킵니다.
  5. 다시 설정된 A의 값으로 조건문을 다시 확인하고 반복할지를 결정합니다.
#include<stdio.h>

void main( )
{
    int x;
    for(x = 1; x <= 10; x++)
    {
        printf("%d\t", x);
    }
}

OUTPUT
1 2 3 4 5 6 7 8 9 10

x의 초기값을 1로 설정합니다. 조건문 x <= 10를 만족하지는 확인. 참이므로 명령문 바디 printf를 실행합니다. 그리고 설정한 초기값 x를 1증가시킵니다.(x++) 다시 조건문을 확인합니다. x가 10이 될 때까지 반복합니다.

※ 중첩  for 루프(loop)

for 루프 안에 for를 사용합니다. 첫 번째 for 루프의 값이 안쪽의 for 루프의 초기값으로 설정되어 반복되는 구조입니다.

#include<stdio.h>

void main( )
{
    int i, j;
    /* 첫번째 for 루프 */
    for(i = 1; i < 5; i++)
    {
        printf("\n");
        /* 두번째 for 루프 */
        for(j = i; j > 0; j--)
        {
            printf("%d", j);
        }
    }
}

OUTPUT
1
21
321
4321
54321

이렇게 중첩 for루프를 활용하여 역순 출력도 가능합니다. 링크의 예제를 참고하세요.

▣ do … while 루프(loop)

while 루프와 비슷합니다. 반복문 바디안의 소스 코드가 처음 한번은 무조건 실행됩니다. 그 후 조건문을 확인하여 반복시킵니다.

#include<stdio.h>

void main()
{
    int a, i;
    a = 5;
    i = 1;
    do
    {
        printf("%d\t", a*i);
        i++;
    } while(i <= 10);
}

OUTPUT
5 10 15 20 25 30 35 40 45 50

변수 a, i를 정의하고 a = 5, i = 1로 초기화합니다. 그리고 바로 printf를 하고 while의 조건문이(i <= 10) 만족할 때까지 반복합니다.

반복문 break, continue로 제어하기

상황에 따라 즉시 루프의 일부를 건너뛰거나 루프를 종료해야 하는 경우가 있습니다.

▣ break

반복문 중간에 break를 만나는 순간 루프는 멈춥니다.

OUTPUT
1 2 3 4

▣ continue

반복문 중간에 continue를 만나는 순간 바로 멈추고 다음 반복으로 넘어갑니다.

OUTPUT
1 2 3 4 6 7 8 9 10

<< 다음 혼자 공부하는 C언어 이전 >>
반응형

'프로그래밍 > C' 카테고리의 다른 글

C언어 배열 (Array)  (0) 2019.11.05
C언어 포인터 변수 이해  (0) 2019.10.17
C언어 Switch 조건문 사용법  (0) 2019.09.25
C언어 조건문 (if)  (0) 2019.09.19
이중 for문을 사용하여 역순으로 출력하기 예제  (0) 2019.09.19