1

私はいくつかのコードを持っています:

def playAgain1():
    print("Would you like to keep boxing or quit while you are ahead? (y/n)")
    playAgain = input().lower()
    if(playAgain.startswith('y') == False):
        print("Whatever you chicken.")
        break

playAgain()で始まらない場合はループを壊したいy。試行するたびに、エラーが発生します:

ループの外側で 'break'

これを機能させるには、どうすればこれをより適切に記述できますか?

4

2 に答える 2

2

Matt Bryant の回答が述べているように、ループの外で中断することはできませんが、関数から戻ることはできます。メインプログラムループが最初に戻るか終了するかを知るために、おそらく関数から値を返す必要があることを付け加えておきます。

def main():
    while True:
        # main game code goes here
        if not playAgain():
            break

def playAgain():
    print("Would you like to keep boxing or quit while you are ahead? (y/n)")
    response = input().lower()
    return response.startswith('y')
于 2013-08-12T23:24:25.833 に答える
1

に置き換えbreakますreturnbreakループ内でのみ使用できますreturnが、関数内のどこでも機能します。最終的なコードは次のようになります。

def playAgain1():
    print("Would you like to keep boxing or quit while you are ahead? (y/n)")
    playAgain = input().lower()
    if not playAgain.startswith('y'):
        print("Whatever you chicken.")
        return
    else:
        # do whatever you do when they say yes
于 2013-08-12T23:17:51.183 に答える