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("認証に成功しました。")
コードの解説
while True:
: 無限ループを開始します。if role != 'admin':
: ユーザーが入力したrole
が'admin'
でないかを確認します。continue
: 条件がTrue
('admin'
以外が入力された)の場合、このcontinue
文が実行されます。すると、それ以降のパスコード入力処理などはすべてスキップされ、ループの先頭(while True:
の直後)に戻って、再び役割の入力を求めます。passcode = input()
:continue
文が実行されなかった場合(つまり、role
が'admin'
だった場合)にのみ、この行が実行され、パスコードの入力が求められます。break
: パスコードが"master_key"
と一致した場合、break
文が実行され、ループ全体が終了します。
このように、continue
文は「条件を満たさない場合は、それ以降の処理をせずに次の回へ進む」という、一種のゲートキーパーのような役割を果たします。
break
とcontinue
の違い
ここで、break
文とcontinue
文の違いを整理しておきましょう。
break
文: ループ全体を完全に終了させ、ループの外に処理を移します。continue
文: 現在の回の処理だけを中断し、次の回の処理を開始します。
どちらもループの制御に不可欠な構文であり、適切に使い分けることが重要です。
まとめ
今回は、ループの現在の回をスキップするためのcontinue
文について解説しました。
continue
文は、ループ内の現在の処理を中断し、次の繰り返しにジャンプします。- 入力値の検証や、特定のデータを除外して処理を行いたい場合に便利です。
- ループを完全に抜ける
break
文とは役割が異なるため、目的に応じて使い分けましょう。
continue
文をマスターして、より効率的でスマートなループ処理を記述してみてください。