인프런 커뮤니티 질문&답변

이승철님의 프로필 이미지
이승철

작성한 질문수

Python 부트캠프

라이캣의 EXIT - while

생선판매 while 구문 질문

해결된 질문

작성

·

223

0

fish = 5

while True:

    num = int(input("고등어 몇 개를 구매하실 건가요?"))

    if fish >= num:

        fish = fish - num

        print(f'고등어 {fish}개 남았습니다.')

        if fish == 0:

            print('완판되었습니다.')

            break

    else:

        print(f'손님, 죄송하지만 구매할 수 있는 고등어 {fish}개 남았습니다.')

       fish = 0

        break

위 예제에서 이 코드대로 실행이 된다면 5마리일 때 6마리를 구매하겠다고 하면 바로 남은 생선이 0마리가 되어버리는 것 아닌가요?

    else:

        print(f'손님, 죄송하지만 구매할 수 있는 고등어 {fish}개 남았습니다.')

이렇게 되어야 완판 될때까지 판매를 하는 것 아닌가요?

답변 1

0

안녕하세요 승철님! 좋은 지적 감사드립니다!


승철님께서 질문주신대로 fish=0을 주게 된다면 판매한적이 없는데 남은 생선이 0마리가 된 뒤 종료가 되어버립니다.ㅠㅠ

따라서 남아있는 생선보다 많은 생선 갯수를 입력했을 때 


1. 다시 while문으로 돌아가서 몇개를 구매할 건지 질문을 한다.

해당 강의 뒷분에서 배우는 continue문을 써서 다시 while문으로 돌아가게 하면 됩니다!

2. 남아있는 생선을 모두 판 뒤 끝낸다.

6개를 구매한다고 해도 5개까지만 구매할 수 있으므로 5개를 모두 구매하고 끝내는 방법입니다.

혼돈을 드려 죄송하며 추후 재녹화시 수정하도록 하겠습니다 :)

또 다른 의문사항이나 질문이 있으시면 언제든 질문게시판에 남겨주세요!
감사합니다!

이승철님의 프로필 이미지
이승철

작성한 질문수

질문하기