14. else if
1. 키워드
2. else if
를 사용하여 여러 방향으로 분기하기
- 프로그램을 만들다 보면 참, 거짓으로만 분기하는 것은 한계가 있다.
- 실제로는 두 가지 이상의 다양한 상황이 발생한다.
- 예를 들어 버튼을 누르면 해당 버튼에 해당하는 음료수가 나오는 상황을
else if
로 만들면 다음과 같은 모양이 된다.
if 콜라 버튼을 눌렀다면
{
콜라를 내보냄
}
else if 사이다 버튼을 눌렀다면
{
사이다를 내보냄
}
else if 환타 버튼을 눌렀다면
{
환타를 내보냄
}
else
{
제공하지 않는 메뉴
}
3. else if
사용하기
else if
는 else
인 상태에서 조건식을 지정할 때 사용한다.
- 단,
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
에서 num1
이 10
인지 검사한 뒤 참이면 "10입니다."
를 출력하고, 거짓이면 그다음에 오는 else if
에서 num1
이 20
인지 검사한다.
- 만약
else if
의 조건식이 참이면 "20입니다."
를 출력하고, 거짓이면 아무것도 출력하지 않는다.
- 여기서는
num1
이 20
이라 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 if
는 else
와 함께 사용할 수 있다.
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
의 코드가 실행된다.
- 여기서는
num1
이 30
이라 if
, else if
의 조건식에 모두 만족하지 않는다.
- 따라서 마지막
else
의 "10도 20도 아닙니다."
가 출력된다.
if
와 else
는 한 번만 사용할 수 있지만, 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