프린세스 다이어리

[C] 반복문 문법 정리 본문

C, C++

[C] 반복문 문법 정리

개발공주 2021. 9. 24. 12:00
728x90

1. 반복문 - for문

#include <stdio.h>  

int main(void) {
    int sum = 0; 
    for (; 1;) {
        int x;
        scanf("%d", &x);
        if (x == -1) {
            break;
        }
        sum += x;
    }

    printf("%d\n", sum);
    
    return 0;
}

for문에 저렇게 (;;)또는 (;1;) 이렇게 넣으면 항상 참이 됨. 그래서 어떤 조건을 걸지 않는 한은 무한루프에 빠진다. 위 로직에서는 정수형 입력값을 조건 없이 계속 받으면서 -1 입력값이 들어오면 이전에 입력했던 값을 모두 더해서 출력해주고 있다. 

 

2. 반복문 - while문

 

#include <stdio.h>

int main(void) {
    int n;
    char a;
    scanf("%d %c", &n, &a);

    while (n--)
    {
        printf("%c\n", a);
    }
        
    return 0;
}

while문을 이용해 조건문을 검사하고, 여기서는 n이 참일때 printf 구문을 실행한다. 처음에 n일 때 참이면 실행하고 다시 나갔다 들어와서 1이 감소된 n이 여전히 참이면 실행하는 것이다. n이 거짓이 되는 시점에 while문이 끝나기 때문에 총 n번만큼 돌게 된다.

 

5 3
3
3
3
3
3

5와 3을 차례로 입력하면 3이 5번 출력된다.

 

3. 반복문 - 구구단

 

#include <stdio.h>

int main(void) {
    int n;
    scanf("%d", &n);
    int i = 1;
    while (i <= 9)
    {
        printf("%d * %d = %d\n", n, i, n * i);
        i++;
    }
     
    return 0;
}

입력받은 값을 n에 넣고, n단을 출력하게 만드는 반복문이다. 

 

3
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27

3을 입력하면 구구단 3단이 잘 출력된다.

 

4. while 중첩 반복문 

#include <stdio.h>

int main(void) {
    int i = 2;

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

i가 반복될 때마다 j가 9번 반복되도록 했다. 

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
...

실행해 보면 성공적으로 구구단이 잘 출력된다. 

 

#include <stdio.h>  

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

이중for문으로 바꾸어 보았다. 같은 결과가 출력된다.

728x90
Comments