[C] If, For, While, and Switch 문

1 minute read

If문은 조건 판단문과 실행문으로 구성된다. If()안의 조건식이 참이면 이후 실행문을 수행하고 거짓이면 실행하지 않는다. If와 함께 사용되는 elseIf() 조건식이 거짓일때, 혹은 상위 조건식이 실행되지 않으면 수행된다. 여러 조건을 탐색하는 경우, else if () 문을 추가하여 여러 조건에 해당하는 실행문을 각각 수행할 수 있다.

  #include <stdio.h>

    int main(){
        int a=1;
        int b=1;

        if(a==1){
            b=3;            
        }
        printf("%d\n", b);

        if(a==2){
            b=2;
        }
        else{
            b=4;
        }
        printf("%d\n", b);

        if(a==2){
            b=2;
        }
        else if (a==4){
            b=4;
        }
        else{
            b=6;
        }
        printf("%d\n", b);

        if(a==1) printf("%d\n",b);


        return 0;
    }

3
4
6
6

Switch 문은 If 문과 동일하게 조건식과 실행문으로 구성된다. If 문보다 다양한 조건 식을 간단하게 구현할 수 있지만 조건식과 실행문의 형태가 제한적이다. 조건식에 변수식은 가능하지만 정수식이어야하며, 실행문 내 case 비교 값은 변수활용이 불가능하고 상수식만 가능하다. 즉 If 문에 비해 다양하게 활용가능하지는 않지만 하나의 조건식에 대해 여러 결과값이 존재하는 경우에 활용성이 높다.

    #include <stdio.h>

    int main(){
        int a=1;
        int b=1;
        int c=1;

        switch(c){
            case 1: printf("%d\n", a);
            case 2: printf("%d\n", b); break;
            case 3: printf("%d\n", c);
        }

        return 0;
    }

1
1

For 문은 If 문과 더불어 가장 많이 사용되는 반복문이다. For 문은 반복문 설정과 실행문으로 구성되어 있다. 반복문 설정은 for(초기화식; 조건식; 후처리식)으로 이루어져있다. 초기 값을 시작으로 매번 조건식을 판단하며 참일 경우 실행문을 수행한다. 후처리식의 경우 실행문 이후에 실행된다 (cf. for(::) 는 무한루프를 형성한다).

breakcontinue 의 경우, For 문과 While 문과 같은 반복문에서 활용가능하다. Break 의 경우 반복문을 종료하고 빠져나오며, continue 의 경우 나머지 코드의 수행을 그만두고 다시 후처리식으로 돌아가 반복문을 계속 실행한다.

  #include <stdio.h>

    int main(){
        int i=0;
        int N=10;

        // N회 반복
        for(i=0; i<N; i++){
        }

        // j==N 까지 실행 
        for(int j=0; j<=N; j++){
        }

        // k=3 부터 N 번 실행
        for(int k=3; k<N+3; k++ ){
        }


        for(int m=0; m<10; m++){
            if(m==5) break;
            if(m % 2==0) printf("%d\n", m); 
        }

        return 0;
    }
0
2
4

반복문의 횟수를 설정하는 For 문과 달리 횟수를 설정할 수 없을 때, 가장 많이 사용된는 반복문이 While 문이다. While 문은 조건식과 실행문으로 구성되며, 조건식이 참으로 유지되는 동안 반복된다. 조건식은 주로 값의 상,하한으로 설정하거나 일치 조건을 활용하여 작성한다. Do-While 문의 경우 실행문이 머저 실행되고 조건문을 검사하는 구조로 되어있어 적어도 한번 이상은 실행문을 수행한다. For 반복문과 동일하게 break, continue 문이 사용 될 수 있다 (cf. while(1)for(::)와 마찬가지로 무한루프를 형성한다).

    #include <stdio.h>
   
    int main(){
        int i=0;

        while (i<10){
            i++;
        }
        printf("%d\n", i);

        while(!(i==20)){
            i++;
        }
        printf("%d\n",i);

        do{
            printf("%d\n",i);
            i++;
        } while(i<25);

    return 0;
    }
    
10
20
20
21
22
23
24