인프런 커뮤니티 질문&답변
처음부터 치킨 11마리 시키면 재고가 부족합니다로 안 뜨는 이유...질문 있습니당
해결된 질문
작성
·
217
0
안녕하세요, 선생님
질문이 있습니다.
작동은 잘되는데 처음부터 치킨 11마리를 시키면 바로 '재고가 부족합니다.'가 안끄는 이유를 모르겠습니다.
if order > chicken:
print('재료가 부족합니다.')
[코딩]
class SoldOutError (Exception):
pass #pass
chicken=10
waiting=1
while(True):
try: #try 넣어줘야 함
print('[남은 치킨 : {0}]'.format(chicken))
order=int(input('치킨 몇 마리를 주문하시겠습니까? : '))
if order > chicken:
print('재료가 부족합니다.')
elif order < 1: #elif
raise ValueError
if chicken == 0:
raise SoldOutError
else:
print('[대기번호 {0}] {1}마리 주문 완료됐습니다.'.format(waiting, order))
waiting += 1
chicken -= order
except ValueError: #try랑 같은 열
print('잘못된 값을 입력하였습니다.')
except SoldOutError: #
print('재고가 소진돼 더 이상 주문을 받지 않습니다.')
break #break
답변 2
1
안녕하세요... 선생님은 아니지만... 지나가면서 공부겸 해결해보았습니다..
처음에 break로 댓 달았다가 확인해보니 그게 아니어서 if문 구조를 바꾸었습니다..
class SoldOutError (Exception):
pass #pass
chicken=10
waiting=1
while(True):
try: #try 넣어줘야 함
print('[남은 치킨 : {0}]'.format(chicken))
if chicken > 0: # 치킨 유무로 재고 소진 여부를 먼저 확인
order=int(input('치킨 몇 마리를 주문하시겠습니까? : '))
if chicken < order: #주문량이 더 많을 경우 문구 출력
print('재료가 부족합니다.')
elif order < 1: #elif # 정수가 아닌 것 입력시 문구 출력
raise ValueError
else:
print('[대기번호 {0}] {1}마리 주문 완료됐습니다.'.format(waiting, order))
waiting += 1
chicken -= order
else: #치킨 전부 소진시 재고 소진 지시문 출력 후 종료
raise SoldOutError
except ValueError: #try랑 같은 열
print('잘못된 값을 입력하였습니다.')
except SoldOutError: #
print('재고가 소진돼 더 이상 주문을 받지 않습니다.')
break #break
0





