C언어 요점 정리 - 조건문2(if, else if, else)

2022. 1. 3. 19:27C언어

else if문
자 저번 시간에 배웠던 개념에서 몇 가지를 추가해 봅시다.
수능문제라고 생각을 하셨을때 int age = 5;라는 문제로 보고 1)영유아 2)10대 3) 20대 4) 30대 5)그 외의 보기가 주어진다면 답은 몇번일까요?? age를 바꾼다면 답도 달라지겠지만? 우선 정답은 1번이겠죠?? 1번이 정답일 때 2, 3, 4, 5번 보기를 체크하시나요 안하시나요? 수능을 볼땐 시간이 없으니깐 그냥 체크하고 넘어가겠죠?

자 예시를 들어봅시다.

#include <stdio.h>

int main()
{
    int age = 5;
    if (age >= 1 && age <= 9) {
        printf("영유아");
    }
    if (age >= 10 && age <= 19) {
        printf("10대");
    }
    if (age >= 20 && age <= 29) {
        printf("20대");
    }
    if (age >= 30 && age <= 39) {
        printf("30대");
    }
    if (age >= 40) {
        printf("그 외");
    }
    return 0;
}

이렇게 되있다고 하면 우선 첫번째 if문이 정답이더라도 컴퓨터는 밑에 문장을 다 실행하게 됩니다. 물론 거짓이기 때문에 출력이 되지는 않지만 시간이 오래걸리겠죠. 자 이때 if else구문을 사용해서 if else if else를 사용한다면 어떻게 될까요? 한덩어리가 되어서 순차적으로 실행하다가 하나가 정답일경우 다른것은 굳이 보지않고 바로 출력하게 되겠죠. 하나가 정답일때 다른 하나가 정답일 수 없는 경우에 이 둘은 양립할 수 없다고 합니다. 1번이 거짓이고 2번이 참일경우 그 외에 명령문을 거들떠보나요?? 안보죠 그럼 뭐가 좋다고 말씀드렸죠?? 실행속도가 빨라집니다~~!!!

if - else if - else문 사용코드

#include <stdio.h>

int main()
{
    int age = 5;
    if (age >= 1 && age <= 9) {
        printf("영유아");
    }
    else if (age >= 10 && age <= 19) {
        printf("10대");
    }
    else if (age >= 20 && age <= 29) {
        printf("20대");
    }
    else if (age >= 30 && age <= 39) {
        printf("30대");
    }
    else {
        printf("그 외");
    }
    return 0;
}
728x90