Skip to content

14. else if


1. 키워드

  • else if


2. else if를 사용하여 여러 방향으로 분기하기

  • 프로그램을 만들다 보면 참, 거짓으로만 분기하는 것은 한계가 있다.
  • 실제로는 두 가지 이상의 다양한 상황이 발생한다.


  • 예를 들어 버튼을 누르면 해당 버튼에 해당하는 음료수가 나오는 상황을 else if로 만들면 다음과 같은 모양이 된다.


if 콜라 버튼을 눌렀다면
{
    콜라를 내보냄
}
else if 사이다 버튼을 눌렀다면
{
    사이다를 내보냄
}
else if 환타 버튼을 눌렀다면
{
    환타를 내보냄
}
else
{
    제공하지 않는 메뉴
}


3. else if 사용하기

  • else ifelse인 상태에서 조건식을 지정할 때 사용한다.
  • 단, else if는 단독으로 사용할 수 없다.


if (조건식)
{
    코드1
}
else if (조건식)
{
    코드2
}


  • 다음 내용을 입력한 뒤 실행해 보자.


#include <stdio.h>

int main()
{
    int num1 = 20;

    if (num1 == 10)
        printf("10입니다.\n");
    else if (num1 == 20) // else인 상태에서 조건식 지정
        printf("20입니다.\n");

    return 0;
}

// 20입니다.


  • 이렇게 하면 처음 if에서 num110인지 검사한 뒤 참이면 "10입니다."를 출력하고, 거짓이면 그다음에 오는 else if에서 num120인지 검사한다.
  • 만약 else if의 조건식이 참이면 "20입니다."를 출력하고, 거짓이면 아무것도 출력하지 않는다.
  • 여기서는 num120이라 else if의 조건식에 만족하므로 "20입니다."가 출력된다.


  • 만약 else if에 조건식을 지정하지 않으면 컴파일 에러가 발생하므로 주의해야 한다.


if (num1 == 10)
    printf("10입니다.\n");
else if // else if에 조건식을 지정하지 않으면 컴파일 에러 발생
    printf("20입니다.\n");


  • if, else와 마찬가지로 else if도 끝에 ;(세미콜론)을 붙이면 안 된다.


4. if, else if, else를 모두 사용하기

  • else ifelse와 함께 사용할 수 있다.


if (조건식)
{
    코드1
}
else if (조건식)
{
    코드2
}
else
{
    코드3
}


  • 다음 내용을 입력한 뒤 실행해 보자.


#include <stdio.h>

int main()
{
    int num1 = 30;

    if (num1 == 10) // num1이 10일 때
        printf("10입니다.\n");
    else if (num1 == 20) // num1이 20일 때
        printf("20입니다.\n");
    else // 앞의 조건식에 모두 만족하지 않을 때
        printf("10도 20도 아닙니다.\n");

    return 0;
}

 // 10도 20도 아닙니다.


  • 이렇게 하면 if, else if의 조건식이 모두 거짓일 때만 else의 코드가 실행된다.
  • 여기서는 num130이라 if, else if의 조건식에 모두 만족하지 않는다.
  • 따라서 마지막 else"10도 20도 아닙니다."가 출력된다.
  • ifelse는 한 번만 사용할 수 있지만, else if는 여러 번 사용할 수 있다.


  • else if 앞에 else가 오면 컴파일 에러가 발생하므로 주의해야 한다.


if (num1 == 10)
    printf("10입니다.\n");
else
    printf("10도 20도 아닙니다.\n");
else if (num1 == 20) // else if 앞에 else가 오면 컴파일 에러 발생
    printf("20입니다.\n");

References