C언어 study_조건문(if, else if, else), 이중 조건문[continue, break]

민성철·2022년 11월 7일
0

nadocoding_study_C

목록 보기
8/17

조건문

if, else if, else

반복문을 쓰다보면 간혹, 어떠한 조건에만 출력이 된다던가, 넘어가기를 원할때가 있습니다.
이때 사용하는게 조건문으로 if와 else if, else가 있습니다.

조건문을 처음 사용할 때 반듯이 'if'문으로 시작을 하고 2개 이상의 조건문을 사용할때는 'else if'문을 사용합니다.
또한, 'else'의 경우에는 2가지의 조건일 때 if와 같이 사용할 수 있으며, 혹은 여러 조건문(if, else if)을 작성한 뒤에, 작성한 조건문 어디에도 해당되지 않을 경우에 발생합니다.
즉, 조건문은 프로그램을 실행하는 중에 조건에 따른 분기가 필요할 때 사용합니다.

if문을 사용할때는 조건이 필수적으로 작성되어야 하며, 조건에 맞을 경우 중괄호 안에 코드가 실행됩니다.

아래 코드로 예시를 들어보겠습니다.

#include <stdio.h>

int main(void) {
	int ea;
    printf("하루에 몇잔의 커피를 마십니까 ?");
    scanf("%d", &ea);
    if (ea <= 2) {
        printf("적당한 카페인을 섭취하고 있습니다\n");
    } else if (3 <= ea && ea <= 6) {
       	printf("카페인이 많습니다.\n 잠을 충분히 주무셔서 피로를 푸시길 바랍니다.\n");     
    } else {
       	printf("전문가와 상담이 필요합니다.");   
    }
    return 0;
}

예를 들어 A는 1잔, B는 3잔, C는 8잔을 먹는다고 가정했을 때 A, B, C 순서대로 output은 아래와 같습니다.

적당한 카페인을 섭취하고 있습니다.
카페인 섭취량이 많습니다.
 잠을 충분히 주무셔서 피로를 푸시길 바랍니다.
전문가와 상담이 필요합니다.
  • 추가적으로, if문은 else if, else문 없이 단독으로도 사용 가능합니다.
    단독으로 사용할때는 조건에 맞을 경우에만 if문의 코드가 실행되고 그렇지 않은 경우에는 별다른 동작없이 계속해서 프로그램을 수행합니다.
  • 또한, 조건문의 경우에는 주요 연산자(관계, 논리 등)를 알아둘 필요가 있습니다.

조건문

이중 조건문

C프로그램은 명령문이 처음부터 끝까지 순서대로 실행됩니다.
때문에, 반복문과 조건문을 사용하여 제어할 수 있습니다.

이전에 배웠던 이중 반복문과 같이, 조건문도 조건문 안에 조건문을 넣어 이중 조건문을 만들 수 있습니다.

하지만 이중 조건문을 알아가기전에 breakcontinue를 먼저 알아보겠습니다.

  • break : 반복문(for, while, do-while)에서 탈출 문으로 사용되며, 보통 탈출문을 사용할때는 조건이 필요하므로 반복문 > 조건문 > 탈출문 순으로 코드를 작성하여 특정 조건에 탈출 할 수 있도록 사용합니다.
    때문에 해당 조건에 충족하여 break문이 작동 될 경우, 코드는 반복문을 중단합니다.
  • continue : break와 사용법은 동일하지만, 한가지 차이점이 있다면 break문은 작동될 경우 반복문 코드가 중단되지만 continue문은 조건에 맞아 작동될 경우, 조건의 코드만 무시하고 반복문을 이어갑니다.

break문과 continue문은 프로그램의 실행 흐름을 제어할 때 자주 사용되므로, 사용법을 꼭 익혀두는게 좋습니다.

이중 조건문의 경우 처음 제시된 조건(문) 안에서 예외 조건이 필요한 경우 사용됩니다.

아래 예시 코드로 알아 보겠습니다.

#include <stdio.h>

int main(void) {
	for (int i = 1; i <= 30; i++) {
        if (6 <= i && i <= 25) {
        	printf("%d번 주문 고객님 \n주문하신 생과일 쥬스 나왔습니다.\n", i);
            if ( i >= 8) {
            	printf("주문이 밀려 잠시 브레이크 타임 가지도록 하겠습니다. \n죄송합니다.\n");
                break;
                }
            continue;
            }
        printf("%d번 주문 고객님 \n주문하신 커피 나왔습니다.\n", i);
        }
        return 0;
    }

output

1번 주문 고객님
주문하신 커피 나왔습니다.
2번 주문 고객님
주문하신 커피 나왔습니다.
3번 주문 고객님
주문하신 커피 나왔습니다.
4번 주문 고객님
주문하신 커피 나왔습니다.
5번 주문 고객님
주문하신 커피 나왔습니다.
6번 주문 고객님
주문하신 생과일 쥬스 나왔습니다.
7번 주문 고객님
주문하신 생과일 쥬스 나왔습니다.
8번 주문 고객님
주문하신 생과일 쥬스 나왔습니다.
주문이 밀려 잠시 브레이크 타임 가지도록 하겠습니다.
죄송합니다.

위 코드에서 볼 수 있듯이 30잔의 주문을 반복해서 출력하는 과정에서,
6번째 고객님부터는 커피는 생략하고 생과일 쥬스를 주문하는 조건문으로 continue문을 사용하였고,
9번째 고객님부터는 브레이크 타임을 가지도록 이중 조건문으로 break문을 사용하여 중단된 것을 확인 할 수 있습니다.

profile
ENTJ-A

0개의 댓글