それは本当に基本的な質問ですが、2番目には考えられません。内部の関数が実行されるたびに、もう一度実行するかどうかを尋ねるループを設定するにはどうすればよいですか。したがって、それを実行してから次のように言います。
「またループ?y/n」
while True:
func()
answer = raw_input( "Loop again? " )
if answer != 'y':
break
keepLooping = True
while keepLooping:
# do stuff here
# Prompt the user to continue
q = raw_input("Keep looping? [yn]: ")
if not q.startswith("y"):
keepLooping = False
通常のアプローチは2つあり、どちらもすでに説明しましたが、次のようになります。
while True:
do_stuff() # and eventually...
break; # break out of the loop
また
x = True
while x:
do_stuff() # and eventually...
x = False # set x to False to break the loop
どちらも正しく動作します。「サウンドデザイン」の観点からは、2番目の方法を使用するのが最適です。1)break
一部の言語では、ネストされたスコープで直感に反する動作をする可能性があるためです。2)最初のアプローチは、「while」の使用目的に反するものです。3)ルーチンには常に単一の出口が必要です
While raw_input("loop again? y/n ") != 'n':
do_stuff()