[英]Breaking out of a while loop
我是 python 和編程的新手,並且難以擺脫調用幾個函數的 while 循環。 我嘗試了各種不同的選項,但它們都以相同的方式結束,它們並沒有結束它只是繼續運行。 我只是在這里,因為我已經研究並嘗試了很長時間來解決這個問題。 下面是一些您可以看到可能與 function 混淆的代碼。 我不會只發布最后一部分的完整程序。 感謝您在我學習期間提供的任何幫助。 這也是我第一次發帖,過去一年我一直在使用stackoverflow。
def main():
choice = input('''Hello,
Would you like to do basic math or return an average?
Please select 1 for basic math and 2 for average and 3 to quit:
''')
if choice == '1':
print(performCalculation())
elif choice == '2':
print(calculateAverage())
elif choice == '3':
print(main())
j = 0
k = 0
while j < 3:
print(main())
while k == 3:
break
print('All Done!')
簡單地改變
j = 0
k = 0
while j < 3:
print(main())
while k == 3:
break
print('All Done!')
至
j = 0
while j < 3:
print(main())
j += 1
print('All Done!')
你的 while 循環永遠不會中斷的原因是因為你有while j < 3:
,但你永遠不會改變j
的值,所以如果它一開始就更小,它就會永遠更小。
此外, k
永遠不會等於3
,即使它會,該while
循環中的break
語句只會使該while 循環終止,而不是主循環。
您在這里有幾個基本錯誤。 我將按照您的程序執行順序為 go。
您已經開始循環變量,其中j
和k
(為什么不i
和j
?)設置為零,並根據這些變量的值循環。 由於它們永遠不會遞增,因此您的循環永遠不會遇到退出條件。
您可以在相應循環結束時使用j += 1
和k += 1
遞增變量。
這些通常會寫成我下面的例子。 您不需要單獨聲明i
或在此處增加它。 Python 為您處理。
for i in range(0, 3):
...
您的主要 function 沒有返回值,因此調用print(main())
是無稽之談。 您可以簡單地用main()
替換它,除非您將main()
更改為具有某種return "foo"
語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.