➋ 여기까지 작성하면 숫자가 아닌 값을 입력했을 때 입력값을 정수형으로 변환하는 int(input(...)) 부분에서 오류가 발생하므로 except 문에서 예외 처리를 합니다. 하지만 ‘1보다 작거나’에 해당하는 조건이 처리되지 않았으므로 코드를 보완하겠습니다. 입력값을 정수로 변환한 후 if 문으로 비교하므로 입력값이 1보다 작은 경우는 이 부분을 수정하면 됩니다. if 문에서 남은 치킨보다 주문량이 많은 경우(order > chicken)를 제외한 모든 경우는 else 문에서 정상 주문으로 처리됩니다. 그 사이에 elif 문을 추가해 입력값이 1보다 작은지 비교하고 1보다 작으면 ValueError를 발생시킵니다.
chicken = 10
waiting = 1
while True:
try:
print("[남은 치킨 : {0}]".format(chicken))
order = int(input("치킨을 몇 마리 주문하시겠습니까? "))
if order > chicken:
print("재료가 부족합니다.")
elif order <= 0: ---- ➋ 입력값이 1보다 작은 수일 때
raise ValueError
else:
print("[대기번호 {0}] {1}마리를 주문했습니다.".format(waiting, order))
waiting += 1
chicken -= order
except ValueError:
print("잘못된 값을 입력했습니다.")