신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

 

제어문의 종류에는 반복문과 조건문이 있다.

 

1. 반복문

반복문은 이름에서 봐도 알 수 있듯이, 반복동작을 하는 프로그램이 있을 때 사용하면 유용하다.

예를 들면, 구구단을 출력하는 프로그램이 있다고 한다면 반복문을 이용하면 간단히 만들 수 있다.

 

반복문을 사용하기 위해서는 보통 for문, while문을 사용한다.

for(int i=1; i<10; i++){
 
    // 수행할 식
 
}
 

i=1부터 i가 10보다 작을때 까지(i=9일때 까지) 반복해서 실행한다.

for(int i=1; i<10; i=i+2){
 
    // 수행할 식
 
}

위와는 조금 다르게 i가 2씩 증가하기 때문에, i=1, 3, 5, 7, 9 총 5번 실행이 된다.

 

예를들어, 구구단 프로그램을 보자

 

1-1. for문을 이용

#include <stdio.h>
 
int main(void) {
    
    // 2단 구구단
    for (int i = 1; i < 10; i++) {
        printf("2 X %d = %d\n", i, (2 * i));
    }
 
    return 0;
}​

 

 

 

1-2. while문을 이용

#include <stdio.h>
 
int main(void) {
    
    // while을 이용한 구구단
    int num = 1;
    while (num < 10) {
        printf("3 X %d = %d\n", num, 3 * num);
        num++;
    }
 
    return 0;
}
​

 

while문을 사용할때, 반복문을 빠져나올수 있는 조건을 만들지 않으면 무한 루프에 빠지게 되므로, 주의 해야한다.

 

while문 말고 비슷한 do ~ while문이 존재한다. 2개의 차이점은 do ~ while문은 최초 한번은 무조건 실행하고, 그냥 while문은 조건이 맞이 않으면 한번도 실행이 안될 수 도 있다.

 

1-3. while문과 do while문의 차이

 

 

num 값이 10이기 때문에 while문은 실행이 안되지만, do ~ while문의 경우는 최초 한번은 실행이 되는것을 확인 할 수 있다.

 

1-4. 2중 for문을 이용하여 전체 구구단을 만들어보자

#include <stdio.h>
 
int main(void) {
    
    // 2중 for문 (구구단)
    for (int i = 2; i < 10; i++) {
        for (int j = 1; j < 10; j++) {
            printf("%d X %d = %d\n", i, j, (i*j));
        }
        printf("\n");
    }
 
    return 0;
}​

 

 

 

2. 조건문

조건문을 사용 하기 위해서는 보통 if ~ else문, switch문을 사용한다. if문의 경우는 주로 양자택일로 선택해야 하는 상황에서 사용 된다. 반대로 switch문의 경우는 다중택일인 상황에 주로 사용이 된다.

 

if문

if(조건1){

// 수행할 식

}

else if(조건2){

// 수행할 식

}

else{

// 위의 모든 조건에 만족하지 않는 경우, 즉 나머지 조건을 만족할때 else문이 실행

}

 

2.1 if문

#include <stdio.h>
 
int main(void) {
 
    // if문을 사용
    int myMoney = 1000; // 내가 가진 돈
    int cookie = 500; // 과자 가격
    printf("내가 가진 돈 : %d\n", myMoney);
    printf("과자 가격 : %d\n", cookie);
    if (myMoney >= cookie) {
        printf("과자를 살 수 있습니다.\n");
    }
    else {
        // 나머지 경우 : myMoney < cookie
        printf("과자를 살 수 없습니다.\n돈이 부족...\n");
    }
 
    return 0;
}
​

 

 

2.2 switch문

Switch문

switch(변수)

{

case 경우1 :

// 수행할 식

case 경우2 :

// 수행할 식

...

default :

// 나머지 경우에 수행할 식

}

 

#include <stdio.h>
 
int main(void) {
 
    // switch문을 사용
    int myScore = 85;
    printf("당신의 학점은 ");
    switch(myScore/10)
    {
    case 10:
        printf("A\n");
        break;
    case 9:
        printf("B\n");
        break;
    case 8:
        printf("C\n");
        break;
    case 7:
        printf("D\n");
        break;
    default:
        printf("F\n재수강\n");
    }
 
    return 0;
}

default는 모든 case에 만족하지 않을때 수행하고 싶은 식이 있으면 사용한다. 만약 필요가 없다면 생략이 가능하다.

 

 

2.3 break

case문에 보면 break;를 확인 할 수 있는데, break;를 사용을 하지 않으면 그 아래의 case도 실행을 하게 된다.

예를들어 보면

 

#include <stdio.h>
 
int main(void) {
 
    // break
    int num = 8;
    switch (num) {
    case 10:
        printf("A\n");
    case 9:
        printf("B\n");
    case 8:
        printf("C\n");
    case 7:
        printf("D\n");
    case 6:
        printf("E\n");
    case 5:
        printf("F\n");
    }
 
    return 0;
}​

 

 

위와 같이 num = 8이므로 case 8에만 해당된다. 하지만, break를 쓰지 않았기 때문에 case 8 밑으로 모두 실행되는 것을 알 수 있다.

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기