2015-03-19 4 views
-4

Вы работаете в пекарне, которая продает два предмета: кексы и кексы. Количество кексов и кексов в вашем магазине в любой момент времени хранится в переменных кексах и кексах, которые были определены для вас. Напишите программу, которая берет строки со стандартного ввода, указывающие, что покупают ваши покупатели («кекс» для кекса, «кекс» для кекса). Если они покупают кекс, уменьшают кексы на единицу, и если они покупают кекс, уменьшайте кексы на 1. Если больше не осталось запеченного товара, распечатайте («Нет на складе»). После того, как вы закончите продажу, введите «0» и попросите программу распечатать количество кексов и кексов, оставшихся в форме «кексы: 9 кексов: 3» (если бы остались 9 кексов и 3 кекса, например).Как выйти из бесконечного цикла

to_buy=input() 
while to_buy != "0": 
if to_buy==muffins and muffins>0: 

    muffins-=1 
else: 
    print("Out of stock") 
if to_buy==cupcakes and cupcakes>0: 

    cupcakes-=1 
else: 
    print("Out of stuck") 
print("muffins:",muffins,"cupcakes:",cupcakes) 

Вышеупомянутый вопрос и код, который я написал. Когда я пытаюсь запустить его, код продолжал идти в бесконечный цикл, я не знаю почему.

+0

просто использовать 'break' – levi

+0

кексы и кексы являются неопределенными. – 7stud

ответ

0

эта линия: to_buy=input()

должен быть внутри loop

переменная to_buy никогда не изменяла это значение в то время как цикл .. поэтому поэтому, он не будет выходить из цикла, и это приведет к бесконечному циклу.

, чтобы выйти из цикла. вы должны изменить значение переменной to_buy.

для этого.

вы должны поместить вход внутри цикла

Я предлагаю также использовать do while, поэтому он будет обрабатывать ввод первого

+0

Он также должен находиться вне цикла, так что 'while' может его оценить. – TigerhawkT3

+0

он все же может оценить, использует ли он 'do while' –

1

код продолжал идти в бесконечный цикл , Я не знаю почему.

to_buy=input() 
while to_buy != "0": 

Вы никогда не меняются to_buy, поэтому цикл продолжается бесконечно. Например, предположим, что to_buy - «3». Тогда условие while while равно True, поэтому выполнение переходит в цикл while. Но внутри цикла while to_buy никогда не изменяется, поэтому цикл while выполняется снова и снова.

Чтобы обойти эту проблему, вы можете сделать это:

while True: #Infinite loop 

    to_buy = input() 
    if to_buy == "0": break #Terminate the infinite loop 

    #Rest of code here 
+0

' to_buy' должен указывать либо тип питания, либо код выхода (''0''). – TigerhawkT3

+2

@ TigerhawkT3, совершенно не имеет значения. – 7stud

+0

'to_buy' никогда не должно быть' '3''. – TigerhawkT3