2017-01-10 26 views
-6
while True: 

    n1 = int(input("Enter first number: ")) 
    if n1>255: 
       print("Invalid input. Sorry the number should be less than 255.") 
       continue 
    elif n1<255: 
       print("The input is valid.") 


    n2 = int(input("Enter second number: ")) 
    if n2>255: 
       print("Invalid input. Sorry the second number should be less than 255.") 
       continue 

    elif n2<255: 
       print("The input is valid.") 

    break 

每當我輸入高於255的'n2'時,它顯示輸入第一個數字。我想讓它顯示輸入第二個數字。如何在Python中使用和調試條件語句?

Image

+6

你還沒有想出如何正確使用while,continue和break。你可以輕鬆地教你自己,多玩一點。 –

+4

請更改標題以便描述您的問題並且不要使用圖像。 – ayhan

+0

這也可能對你有幫助 https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops – Altoyyr

回答

0

的問題是在第一ifcontinue聲明。 continue並不意味着「繼續」。這意味着,「忽略while/for循環的其餘部分,並從下一次迭代開始重複」。所以,實際上,下一次您處於輸入提示時,不會輸入n2,您又是同一行,並再次輸入n1。刪除continue聲明。

看看breakcontinue語句是如何工作的,他們幾乎在所有的語言一樣(我知道的至少)

+1

你的意思是「忽略其餘的這個迭代的while/for循環**「?你所引用的文字可能會被誤解 - 這聽起來像是你正在描述一個循環的突破。 – halfer

+0

對,我試圖儘可能簡單,但可能會被誤解。編輯 –

0

continue在開始整個while循環:它不回去到最後的if聲明或類似的東西之前。所以你的第二個continue有效地啓動你的程序。你需要擺脫這個continue,並使用其他方法來重做這個輸入。