카메라 개발자 공부방(SW)

[5장] 반복문 본문

Langauge/C

[5장] 반복문

luckmart 2021. 9. 24. 18:30
반응형

자 오늘은 반복문에 대해서 이야기해보겠습니다.

반복문은 동일한 코드를 여러번 작성해야 할 때 유용하게 사용할 수 있는 기능입니다.

C에선 forwhile을 제공합니다.

 

for문의 사용법을 보겠습니다~!.

for (초기값;조건문;증감문) {
     /* your code */
}

초기값은 변수가 들어가서 "몇 부터 시작할지"에  대한 초기 값 설정을 하는 곳입니다.

조건문은 for 문의 탈출 조건에 해당되며, 조건이 false일 때 까지 아래의 { } 를 반복해서 수행합니다.

증감문은 초기값에 설정된 변수에 가산 혹은 감산을 위해 사용됩니다.

 

다음은 while문의 사용법을 보겠습니다~!

초기값
while (조건문) {
    /* your code */

증감문
}

for문과 기능적으로 완전히 동일하지만, 쓰이는 모양이 조금 다릅니다.

초기값, 조건문, 증감문은 for문과  동일합니다.

#include <stdio.h>

int main()
{
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");
    printf("hello world\n");

    return 0;
}
// 실행결과
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world

반복문이 없다면, 코드의 중복은 불가피하게 됩니다.
위의 예시에선 hello world 10개를 출력했지만, 1000개를 출력해야 된다고 생각해보죠..

일일이 손으로 작성하기엔 무리가 있겠죠? 코드의 가독성도 좋지 않을 것입니다!

#include <stdio.h>

int main()
{
    for (int i = 0; i < 10; i++) {
        printf("hello world\n");
    }

    return 0;
}
// 실행결과
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world

반복문을 사용하면 간단하게 코드를 작성할 수 있습니다.
i가 0 부터 10이 될때 까지 10번 반복하면서 hello world가 출력이 됩니다.

#include <stdio.h>

int main() 
{
    int i = 0;
    while(i < 10) {
        printf("hello world\n");
    }

    return 0;
}
// 실행결과
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world
// hello world

당연히 for문으로 작성한 코드는 while로도 동일하게 치환가능합니다. 

#include <stdio.h>

int main()
{
    for (; 1; ) {
        printf("hello world\n");
    }
    return 0;
}

// 실행결과
// hello world
// hello world
// ...(무한 호출)

다음은 초기값과 증감문은 없고, 조건문만 1인 코드를 봅시다~

조건이 계속 true이기 때문에 hello world가 무한히 출력될 것이고, 프로그램이 종료되지 않겠죠?

#include <stdio.h>

int main()
{
    while(1) {
        printf("hello world\n");
    }
    return 0;
}

// 실행결과
// hello world
// hello world
// ...(무한 호출)

 

while문에서도 조건이 1이면 계속 true이기 때문에 hello world가 무한 출력됩니다.

보통 컴퓨터 입장에서 프로그램이 언제 종료될지 모르기 때문에
사용자의 종료 event가 입력될때 까지 무한 루프가 돌게끔 코드를 일반적으로 많이 작성합니다.

반복문을 사용한 예제를 통해 복습을 해봅시다!

#include <stdio.h>

int main() 
{
    int sum = 0;
    for (int i = 1; i <=10; i++) {
        sum += i;
    }
    printf("sum: %d\n", sum);
    return 0;
}

// 실행결과
// sum: 55

1부터 10까지 합산 하는 코드입니다.

#include <stdio.h>

int main()
{
    int sum = 0;
    while (i <= 10) {
        sum += i;
        i++;
    }
    printf("sum: %d\n", sum);
    return 0;
}

// 실행결과
// sum: 55

당연히 while로도 동일하게 작성 할 수 있습니다.

#include <stdio.h>

int main()
{
    int i = 0;
    for (i = 0; i < 5; i++) {
        printf("*");
    }
    return 0;
}
// 실행결과
// *****
#include <stdio.h>

int main()
{
    int i = 0, j = 0;
    for (i = 0; i < 5; i++) {
        for (j = 0; j <= i; j++) {
            printf("*");
        } 
    }
    return 0;
}

// 실행결과
// *
// **
// ***
// ****
// *****

*찍기 예제 코드 입니다.

'Langauge > C' 카테고리의 다른 글

[7장] 변수의 초기화와 대입  (0) 2021.09.26
[6장] 자료형(data type)  (0) 2021.09.25
[4장] 조건 제어문  (0) 2021.09.23
[3장] 연산자  (0) 2021.09.22
[2장] 변수  (0) 2021.09.21
Comments