• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

HEADBOOST

  • Python
  • NumPy
  • 線形代数
  • 文法
  • お問い合わせ
現在の場所:ホーム / Python / Python while 文 / Pythonのwhile文のcontinueを使ったループのスキップ条件の作り方

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

このエントリーをはてなブックマークに追加
Tweet

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

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

目次

  • 1. while文のcontinueとは
  • 2. while文のcontinueの注意点
  • 3. まとめ

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を使う場合は、この点に注意しましょう。

このエントリーをはてなブックマークに追加
Tweet

Filed Under: Python while 文 関連タグ:Python入門

moriyama

Previous Post: « Pythonのwhile文のelseでループ終了後に実行する処理を作る方法
Next Post: Pythonの「while True:」による無限ループの解説 »

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

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

最初のサイドバー

サイト内検索

コンテンツ

  • Python
  • NumPy
  • 線形代数

目次

  • 1. while文のcontinueとは
  • 2. while文のcontinueの注意点
  • 3. まとめ

Copyright © 2021 ·