Pythonのwhile文のcontinueを使ったループのスキップ条件の作り方

このページでは、while文のcontinueの基本と注意点について、図解を多く入れながら解説していきます。ぜひ参考にして頂ければと思います。

while 文の基本
while文の基本については「Pythonのwhile文による繰り返し処理(whileループ)の基本」で解説しています。先に目を通しておきましょう。
目次

1. while文のcontinueとは

while文のcontinueは、「ある条件を満たす間は繰り返し処理をするが、その中でスキップ条件を満たした場合は以降の処理をスキップして次のループに移る」というコードを書くときに使います。

以下が基本的な書き方です。

In [ ]:
while 条件式:
    処理文任意
    if 条件式:  #  whileブロックの中にif条件式を書く
        処理文任意
        continue  #  ifブロックの中にcontinueを書く
        処理文任意
    処理文任意

スキップ条件はif文で書いて、その条件を満たした時に以降の処理を全てスキップして次のループに移ります。ちなみに、if文については「Pythonのif文を使った条件分岐の基本と応用」でご確認ください。

条件分岐の流れは下図のようになります。

例えば、以下のコードをご覧ください。

In [1]:
num = 1

while num <= 5:
    if num == 3:  #  numが3の時にスキップ
        num += 1
        continue
    print(num)
    num += 1
1
2
4
5

whileループで数値を1から5まで出力するコードですが、この中でif文で「num == 3」の時にcontinueするように書いています。ここで以降の処理を全てスキップして次のループに移ります。

2. while文のcontinueの注意点

for文のcontinue」ではこのようなことはないのですが、while文でcontinueを書く場合は注意しないと意図せず無限ループになってしまうことがあります。

例えば、先ほどのコードの条件分岐は下図のようになっています。

これが、もし下図のようにcontinueの前に「num += 1」がなければどうでしょうか。その場合は次のように、numの値がずっと3のままになるので、意図せず無限ループ(赤矢印の経路)になってしまいます。

以下が、意図せず無限ループになってしまっている実際のコードです。このままでは、2を出力した以降プログラムは進まなくなってしまいます。

In [2]:
num = 1

while num <= 5:
    if num == 3:  #  numが3の時にスキップ
        continue
    print(num)
    num += 1
1
2

こうしたミスは起こりがちなので注意しましょう。それでももし、意図せず無限ループになってしまった場合は、「ctrl + c」で KeyboardInterruptという強制終了をすることができます。

---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-5-231a52ecd1f7> in <module>
      1 num = 1
      2 
----> 3 while num <= 5:
      4     if num == 3:  #  numが3の時にスキップ
      5         continue

KeyboardInterrupt: 

3. まとめ

このようにwhile文のcontinueは、「それ以降の処理を全てスキップして次のwhileループに戻る」という処理を行うコードです。プログラムが、continueに差し掛かった時点で、次のwhileループが最初から始まります。

そのために意図せず無限ループになって、プログラムの進行が止まってしまう場合があります。whileループでcontinueを使う場合は、この点に注意しましょう。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる