Python | continue, break, pass の比較

Python
スポンサーリンク

初心者がつまずきやすい3つのキーワード「continue / break / pass」を、テキスト図と例題で直感的に理解できるように整理します。


比較表(役割・動き・よく使う場面)

キーワード役割ループでの動きよく使う場面
continueその回の残り処理をスキップ次の繰り返しへ進むフィルタリング、入力チェック
breakループ自体を終了ループから即時脱出探索の打ち切り、早期終了
pass何もしない(空の処理)そのまま次に進む後で書く場所の仮置き、空のブロック

Sources: 直感的比較・一般的な使い分けの説明


テキスト図で動きを理解する

Continue の流れ(その回だけ飛ばす)

[ループ開始]
   ├─ 条件OK → この回の残り処理をスキップ
   │           ↳ 次の回へ
   └─ 条件NG → 残りの処理を続行
[ループ継続]

Break の流れ(ループを終わらせる)

[ループ開始]
   ├─ 条件OK → ループを即終了
   │           ↳ ループの外へ
   └─ 条件NG → 残りの処理を続行
[終了]

Pass の流れ(その場で何もしない)

[ループ開始 or if 等のブロック]
   ├─ 条件OK → 何もしない(pass)
   │           ↳ 次の処理へ(継続)
   └─ 条件NG → 普通に続行
[継続]

例題で感覚をつかむ

1. continue:不要なものは飛ばす(偶数だけ表示)

for i in range(1, 11):
    if i % 2 == 1:   # 奇数なら
        continue     # この回をスキップ
    print(i)         # 偶数だけ表示
Python
  • 結果: 2, 4, 6, 8, 10
  • ポイント: 条件に合わないデータを「捨てて進む」フィルタリングに便利。

2. break:見つかったら終わり(最初の3の倍数で終了)

for i in range(1, 20):
    if i % 3 == 0:
        print("見つけた:", i)
        break        # 最初に見つかったところでループ終了
Python
  • 結果: 見つけた: 3
  • ポイント: 条件達成後は処理を続ける意味がないときに最短で抜ける。

3. pass:あとで書く場所の仮置き(未実装の分岐)

for ch in "a1?Z":
    if ch.isalpha():
        # ここは後で実装する
        pass
    elif ch.isdigit():
        print("数字:", ch)
    else:
        print("その他:", ch)
Python
  • 結果: 数字: 1 / その他: ?
  • ポイント: 「構文的に何か書かないといけないけど、まだ処理を決めていない」ときの空文。

よくある落とし穴とコツ

  • continueの落とし穴:
    ループ変数の更新忘れに注意。 while ループで更新前に continue すると、無限ループの原因になります。
i = 0
while i < 5:
    if i < 3:
        i += 1      # 先に更新してからcontinueが安全
        continue
    print(i)
    i += 1
Python
  • breakの落とし穴:
    ネストしたループでは「内側のループしか抜けない」。 外側も止めたいなら、フラグや関数化してreturnで抜けるなどの工夫が必要。
for r in range(3):
    for c in range(3):
        if r == 1 and c == 1:
            print("内側をbreak")
            break
    print("外側は続く:", r)
Python
  • passの誤解:
    「何か特別なことをする」命令ではない。 本当に何もしません。ログやTODOコメントを残して、後で必ず実装しましょう。
if condition:
    pass  # TODO: 実装する(期限: 12/10)
Python

使い分けの指針(短い実務ヒント)

  • フィルタしたい: continue
    例)「空文字」「不正値」を飛ばす、対象外データをスキップ
  • 早く抜けたい: break
    例)「最初に見つかった一致」「タイムアウト条件」などで打ち切り
  • まだ書かない: pass
    例)プロトタイプ段階、条件分岐の形だけ作っておく

覚え方:

  • continue: この回は「続けるために飛ばす」
  • break: ここで「壊して終わる」
  • pass: とりあえず「通過するだけ」
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました