2015-03-19 64 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