2015-03-19 61 views
-4

你工作的面包店出售两件物品:松饼和纸杯蛋糕。店内任何时间的松饼和蛋糕的数量都储存在变量松饼和蛋糕中,这些都是为您定制的。 编写一个程序,它从标准输入中提取字符串,指明你的顾客正在购买什么(松饼是松饼,杯形蛋糕是“蛋糕”)。如果他们购买松饼,减少一个松饼,如果他们买了一个蛋糕,减少一个蛋糕。如果没有更多的烘焙剩余,打印(“缺货”)。 一旦你完成销售,输入“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 2015-03-19 01:12:28

+0

松饼和蛋糕是不确定的。 – 7stud 2015-03-19 01:13:08

回答

0

这一行:to_buy=input()

必须是内部的loop

变量to_buy从来没有改变过它的价值,同时循环..所以因此,它不会退出循环,并导致以无限循环

为了退出循环。您必须更改变量to_buy的值。

为了做到这一点。

必须将循环内的输入

我还会建议使用do while,所以它会处理输入第一

+0

它也必须在循环之外,以便'while'可以评估它。 – TigerhawkT3 2015-03-19 01:39:23

+0

它仍然可以评估他是否使用“do while” – 2015-03-19 01:40:31

1

代码保持进入一个无限循环,我不知道为什么。

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

你永远不会改变to_buy,使循环继续下去。例如,假设to_buy是“3”。然后while循环条件为真,所以执行进入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 2015-03-19 01:36:15

+2

@ TigerhawkT3,完全不相干。 – 7stud 2015-03-19 01:39:51

+0

'to_buy'不应该是'3'。 – TigerhawkT3 2015-03-19 01:41:33