このページでは、while文のcontinueの基本と注意点について、図解を多く入れながら解説していきます。ぜひ参考にして頂ければと思います。
while文の基本については「Pythonのwhile文による繰り返し処理(whileループ)の基本」で解説しています。先に目を通しておきましょう。
1. while文のcontinueとは
while文のcontinueは、「ある条件を満たす間は繰り返し処理をするが、その中でスキップ条件を満たした場合は以降の処理をスキップして次のループに移る」というコードを書くときに使います。
以下が基本的な書き方です。
while 条件式:
処理文(任意)
if 条件式: # whileブロックの中にif条件式を書く
処理文(任意)
continue # ifブロックの中にcontinueを書く
処理文(任意)
処理文(任意)
スキップ条件はif文で書いて、その条件を満たした時に以降の処理を全てスキップして次のループに移ります。ちなみに、if文については「Pythonのif文を使った条件分岐の基本と応用」でご確認ください。
条件分岐の流れは下図のようになります。
例えば、以下のコードをご覧ください。
num = 1
while num <= 5:
if num == 3: # numが3の時にスキップ
num += 1
continue
print(num)
num += 1
whileループで数値を1から5まで出力するコードですが、この中でif文で「num == 3」の時にcontinueするように書いています。ここで以降の処理を全てスキップして次のループに移ります。
2. while文のcontinueの注意点
「for文のcontinue」ではこのようなことはないのですが、while文でcontinueを書く場合は注意しないと意図せず無限ループになってしまうことがあります。
例えば、先ほどのコードの条件分岐は下図のようになっています。
これが、もし下図のようにcontinueの前に「num += 1」がなければどうでしょうか。その場合は次のように、numの値がずっと3のままになるので、意図せず無限ループ(赤矢印の経路)になってしまいます。
以下が、意図せず無限ループになってしまっている実際のコードです。このままでは、2を出力した以降プログラムは進まなくなってしまいます。
num = 1
while num <= 5:
if num == 3: # numが3の時にスキップ
continue
print(num)
num += 1
こうしたミスは起こりがちなので注意しましょう。それでももし、意図せず無限ループになってしまった場合は、「ctrl + c」で KeyboardInterruptという強制終了をすることができます。
3. まとめ
このようにwhile文のcontinueは、「それ以降の処理を全てスキップして次のwhileループに戻る」という処理を行うコードです。プログラムが、continueに差し掛かった時点で、次のwhileループが最初から始まります。
そのために意図せず無限ループになって、プログラムの進行が止まってしまう場合があります。whileループでcontinueを使う場合は、この点に注意しましょう。
コメント