14.2 if, elif, else를 모두 사용하기

elifelse와 함께 사용할 수 있습니다.

if 조건식:
    코드1
elif 조건식:
    코드2
else:
    코드3

실행 결과

10도 20도 아닙니다.

이렇게 하면 if, elif의 조건식이 모두 거짓일 때만 else의 코드가 실행됩니다. 여기서는 x가 30이라 if, elif의 조건식에 모두 만족하지 않습니다. 따라서 마지막 else'10도 20도 아닙니다.'가 출력됩니다.

참고로 ifelse는 한 번만 사용할 수 있지만, elif는 여러 번 사용할 수 있습니다. 그리고 elif의 들여쓰기 규칙은 if, else와 같으므로 따로 설명하지 않겠습니다.

만약 elif 앞에 else가 오면 잘못된 문법이므로 주의해야 합니다.

if x == 10:
    print('10입니다.')
else:
    print('10도 20도 아닙니다.')
elif x == 20:    # elif 앞에 else가 오면 잘못된 문법
    print('20입니다.')

이제 음료수 자판기를 만들어봅시다. 버튼 1번은 '콜라', 2번은 '사이다', 3번은 '환타'이고 각 버튼에 따라 음료수 이름을 출력한다고 하죠(1, 2, 3이외의 숫자는 '제공하지 않는 메뉴' 출력). 코드를 보기 전에 어떻게 만들면 될 지 머리 속으로 한 번 생각해보세요.

vending_machine.py

button = 1
 
if button == 1:
    print('콜라')
elif button == 2:
    print('사이다')
elif button == 3:
    print('환타')
else:
    print('제공하지 않는 메뉴')

실행 결과

콜라

실제 자판기에서는 버튼 개수가 정해져 있어서 1, 2, 3번 이외의 버튼이 입력될 가능성이 거의 없습니다. 하지만 프로그램에서는 예상치 못한 값이 입력되는 경우가 자주 있습니다(예를 들어 숫자만 입력하라고 했는데 사용자가 문자열을 입력한다든지…). 따라서 잘못된 값에 대한 처리는 꼭 해주는 것이 좋습니다.

지금까지 if, elif, else로 조건에 따라 분기하는 방법을 배웠습니다. 여기서는 if, elif, else 끝에 :(콜론)을 붙인다는 점과 다음 줄에서는 반드시 들여쓰기를 한다는 점이 중요합니다. 그리고 조건식이 여러 개일 때는 논리 연산자를 활용한다는 점도 기억해두세요.