2016-11-05 14 views
2

これは私のコードの一部です。なぜ私のwhileループはユーザにもう一度やり直さないのか分かりません。私を助けてください!私のwhileループは動作しません

answer3 = True 
while answer3: 
    if answer2.lower() == "no" or answer2.lower() == "nah": 
     print ("Okay then ... Bye.") 
     sys.exit() 
    elif answer2 == "Yes".lower() or answer2.lower() == "yeah" or answer2.lower() == "yes": 
     print ("Okay then ... \n") 
    else: 
     print("Please enter a valid answer! Try again!\n") 
    break 
+1

であなたのコードの画像を含めないでください。テキストボックスに貼り付けて強調表示し、Ctrl + Kキーを押して正しくインデントします。 – Aurora0001

+1

OKありがとう@ Aurora0001 –

+0

@AsifKhan答えが「はい」のときにループを終了したくないですか? –

答えて

1

ブレークを削除するだけで、最初の繰り返し後に停止するという問題があります。

何が起こっているかは、break命令がループを放棄するために使用されることです。あなたのコードでは、最初の変数をTrueに設定し、条件が満たされていない間はループを続けると予想します。

コードは条件を評価するだけで、最後の文(改行)はwhileを終了するよう指示します。つまり、避けたいものです。

使用このコードは正しい動作を確認する:

import sys 

answer3 = True 
while answer3: 
    answer2 = raw_input("introduce your option: ") 

    if answer2.lower() == "no" or answer2.lower() == "nah": 
     print ("Okay then ... Bye.") 
     sys.exit() 
    elif answer2 == "Yes".lower() or answer2.lower() == "yeah" or answer2.lower() == "yes": 
     print ("Okay then ... \n") 
    else: 
     print("Please enter a valid answer! Try again!\n") 
+0

これは、ブレークが繰り返しを防止する正しいことです。 – kpie

+0

これは技術的には正しいですが、なぜ* break *を削除して問題を解決するのかを説明することは良い考えです。 OPはおそらくまだ初心者であり、詳細な説明なしでは完全に理解できないでしょう。 – Aurora0001

+0

ありがとうございますが動作しません。 –

1

ブレーク機能がANSWER3はまだ真の価値を持っている場合でもそう、あなたのwhileループを抜けることの終わりは、最初のサイクルだ後、それはループを停止します。破損を取り除き、それが機能するはずです。

それは、現在のループを終了し、次の 文から実行を再開し、いくつかの外部条件は性急を必要とするトリガー あるときだけC.

の伝統的なbreak文のような休憩のための最も一般的な使用でありますループを終了します。 break文は、whileループとforループの両方で を使用できます。

ネストループを使用している場合、breakステートメントは最も内側のループの実行を停止し、ブロック の次のコード行の実行を開始します。他の答えとしてブレークを削除する以外に

enter image description here

+0

私は休憩を削除しようとしましたが、私はそれだけで同じことを何度も何度も繰り返し続けます。 –

+0

Answer2の入力はループの外にあるので、常に同じ値。 – Pic

+0

しかし、プログラムを終了するか実行するために、あなたの興味がanswer2の値を一度チェックしているなら、なぜwhileループを使用していますか? – Pic

0

再度ANSWER2の値を取得する必要があります示唆しています。私はあなたにもケースの回答でループから壊したくて信じて

それ以外

はイエス

answer3 = True 
while answer3: 
    answer2 = str(input("Enter your answer no/yes:")) 
    if answer2.lower() == "no" or answer2.lower() == "nah": 
     print ("Okay then ... Bye.") 
     sys.exit() 
    elif answer2 == "Yes".lower() or answer2.lower() == "yeah" or answer2.lower() == "yes": 
     print ("Okay then ... \n") 
     sys.exit() 
    else: 
     print("Please enter a valid answer! Try again!\n") 
関連する問題