Pythonループ制御:continue文で現在の処理をスキップする方法

Pythonでループ処理を実装していると、「特定の条件のときだけ、その回の処理をスキップして、次の繰り返しに進みたい」という状況があります。ループ全体を中断するbreak文とは異なり、現在の回だけを飛ばしたい場合に役立つのが**continue文**です。

この記事では、continue文の基本的な使い方と、break文との違いについて分かりやすく解説します。


目次

continue文とは?

continueは、forループやwhileループの中で使うと、その時点からループブロックの末尾までの処理をすべてスキップし、次の回の繰り返し(イテレーション)に直接ジャンプする命令です。

例えば、リストの要素を処理している際に、特定の条件に一致する要素は無視して次の要素の処理に移りたい、といった場面で非常に有効です。


whileループでcontinue文を使う

continue文の具体的な動きを、ユーザー認証のようなプログラムで見ていきましょう。

以下のコードは、特定のユーザー(role'admin')だけを認証し、それ以外のユーザーが入力された場合は、パスワードの入力を求めずに、再度ユーザー名の入力を求める処理です。

# 無限ループを開始
while True:
    print("あなたの役割を入力してください (例: user, admin, guest):")
    role = input()

    # 入力が 'admin' でなければ、ループの先頭に戻る
    if role != 'admin':
        print("管理者ではありません。再度入力してください。")
        continue

    # --- ここからの処理は role が 'admin' の場合のみ実行される ---
    
    print(f"こんにちは、{role}。パスコードを入力してください。")
    passcode = input()

    # パスコードが正しければループを抜ける
    if passcode == "master_key":
        break
    else:
        print("パスコードが違います。")

# break文によってループが終了した後に実行される
print("認証に成功しました。")

コードの解説

  1. while True:: 無限ループを開始します。
  2. if role != 'admin':: ユーザーが入力したrole'admin'でないかを確認します。
  3. continue: 条件がTrue'admin'以外が入力された)の場合、このcontinue文が実行されます。すると、それ以降のパスコード入力処理などはすべてスキップされ、ループの先頭(while True:の直後)に戻って、再び役割の入力を求めます。
  4. passcode = input(): continue文が実行されなかった場合(つまり、role'admin'だった場合)にのみ、この行が実行され、パスコードの入力が求められます。
  5. break: パスコードが"master_key"と一致した場合、break文が実行され、ループ全体が終了します。

このように、continue文は「条件を満たさない場合は、それ以降の処理をせずに次の回へ進む」という、一種のゲートキーパーのような役割を果たします。


breakcontinueの違い

ここで、break文とcontinue文の違いを整理しておきましょう。

  • break: ループ全体を完全に終了させ、ループの外に処理を移します。
  • continue: 現在の回の処理だけを中断し、次の回の処理を開始します。

どちらもループの制御に不可欠な構文であり、適切に使い分けることが重要です。


まとめ

今回は、ループの現在の回をスキップするためのcontinue文について解説しました。

  • continue文は、ループ内の現在の処理を中断し、次の繰り返しにジャンプします。
  • 入力値の検証や、特定のデータを除外して処理を行いたい場合に便利です。
  • ループを完全に抜けるbreak文とは役割が異なるため、目的に応じて使い分けましょう。

continue文をマスターして、より効率的でスマートなループ処理を記述してみてください。

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

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次