while문에 의한 문장의 반복

반복문이란 무엇인가

  • C언어에서 제공하는 3 가지의 반복문
    • while, do~while, for

while문은 반복을 명령하는 문장이다.

while(num<3) // 반복의 조건은 num<3
{
   printf("Hello world! \n");
   num++;
}
 
#include <stdio.h>

int main(void)
{
    int num=0;

    while(num<5)
    {
        printf("Hello world! %d \n", num);
        num++;  // 만약 이를 주석 처리하면 Hello world! 0이 무한대로 출력 되면서 무한 루프에 빠지게 된다.
    }
    return 0;
}

// 결과
Hello world! 0 
Hello world! 1 
Hello world! 2 
Hello world! 3 
Hello world! 4
  • 반복문 구성에 있어서 중요한 것은 반복의 조건을 무너뜨리기 위한 최소한의 연산
  • 반복문도 들여쓰기 해서 사용
  • 반복의 대상이 하나의 문장이라면 중괄호는 생략 가능
#include <stdio.h>

int main(void)
{
    int dan=0, num=1;
    printf("몇 단? ");
    scanf("%d", &dan);

    while(num<10)
    {
        printf("%d x %d = %d \n", dan, num, dan*num);
        num++;
    }
    return 0;
}

// 결과
몇 단? 7
7 x 1 = 7 
7 x 2 = 14 
7 x 3 = 21 
7 x 4 = 28 
7 x 5 = 35 
7 x 6 = 42 
7 x 7 = 49 
7 x 8 = 56 
7 x 9 = 63

while문의 중첩

#include <stdio.h>

int main(void)
{
    int cur=2;
    int is=0;

    while(cur<10)  // 2단부터 9단까지 반봅
    {
        is=1;  // 새로운 단의 시작을 위해서
        while(is<10)  // 각 단의 1부터 9의 곱을 표현
        {
            printf("%d x %d = %d \n", cur, is, cur*is);
            is++;
        }
        cur++;  // 다음 단으로 넘어가기 위한 증가
    }
    return 0;
}

// 결과
2 x 1 = 2 
2 x 2 = 4 
2 x 3 = 6 
2 x 4 = 8 
2 x 5 = 10 
2 x 6 = 12 
2 x 7 = 14 
2 x 8 = 16 
2 x 9 = 18 
3 x 1 = 3 
3 x 2 = 6 
3 x 3 = 9 
3 x 4 = 12 
3 x 5 = 15 
3 x 6 = 18 
3 x 7 = 21 
3 x 8 = 24 
3 x 9 = 27 
4 x 1 = 4 
4 x 2 = 8 
4 x 3 = 12 
4 x 4 = 16 
4 x 5 = 20 
4 x 6 = 24 
4 x 7 = 28 
4 x 8 = 32 
4 x 9 = 36 
5 x 1 = 5 
5 x 2 = 10 
5 x 3 = 15 
5 x 4 = 20 
5 x 5 = 25 
5 x 6 = 30 
5 x 7 = 35 
5 x 8 = 40 
5 x 9 = 45 
6 x 1 = 6 
6 x 2 = 12 
6 x 3 = 18 
6 x 4 = 24 
6 x 5 = 30 
6 x 6 = 36 
6 x 7 = 42 
6 x 8 = 48 
6 x 9 = 54 
7 x 1 = 7 
7 x 2 = 14 
7 x 3 = 21 
7 x 4 = 28 
7 x 5 = 35 
7 x 6 = 42 
7 x 7 = 49 
7 x 8 = 56 
7 x 9 = 63 
8 x 1 = 8 
8 x 2 = 16 
8 x 3 = 24 
8 x 4 = 32 
8 x 5 = 40 
8 x 6 = 48 
8 x 7 = 56 
8 x 8 = 64 
8 x 9 = 72 
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

do~while문에 의한 문장의 반복

  • while문과의 차이점: 반복을 검사하는 시점
    • while문과는 반복 조건의 검사위치가 다르며, 이로 인해서 반복 영역을 최소한 1회 이상 실행한다는 점이 유일한 차이점
do  // 일단 실행!
{
   printf("Hello world! \n");
   num++;
}  while(num<3);  // 반복 여부 확인!

do~while문이 자연스러운 상황

  • 반복 영역이 무조건 한 번 이상 실행되어야 하는 상황
#include <stdio.h>

int main(void)
{
    int total=0, num=0;
    do
    {
        printf("정수를 입력해주세요.(종료를 원하시면 0): ");
        scanf("%d", &num);
        total+=num;
        printf("현재까지 더한 값: %d \n", total);
    } while (num);
    printf("최종합: %d \n", total);
    return 0;
}

// 결과
정수를 입력해주세요.(종료를 원하시면 0): 10
현재까지 더한 값: 10 
정수를 입력해주세요.(종료를 원하시면 0): 5
현재까지 더한 값: 15 
정수를 입력해주세요.(종료를 원하시면 0): 28
현재까지 더한 값: 43 
정수를 입력해주세요.(종료를 원하시면 0): 449
현재까지 더한 값: 492 
정수를 입력해주세요.(종료를 원하시면 0): 1372
현재까지 더한 값: 1864 
정수를 입력해주세요.(종료를 원하시면 0): 0    
현재까지 더한 값: 1864 
최종합: 1864

for문에 의한 문장의 반복

for문의 구조와 이해

  • 필수요소 1 = 초기식 - 반복을 위한 변수의 선언 및 초기화에 사용
  • 필수요소 2 = 조건식 - 반복의 조건을 검사하는 목적으로 선언됨
  • 필수요소 3 = 증감식 - 반복의 조건을 ‘거짓'으로 만드는 증가 및 감소 연산
for( 초기식 ; 조건식 ; 증감식 )
{
   // 반복의 대상이 되는 문장들
}
  • 반복의 횟수가 딱 정해진 경우엔 for문이 최선

'C' 카테고리의 다른 글

변수의 존재기간과 접근범위  (0) 2025.03.12
조건에 따른 흐름의 분기  (0) 2025.03.12
printf, scanf  (3) 2025.03.12
C 언어 자료형  (0) 2025.03.12
자료형 및 Byte 개념  (0) 2025.03.12

+ Recent posts