Python | continue文

Python
スポンサーリンク

以下は、ネスト(入れ子)されたループの中で continue がどう動くかを、初心者向けに「完全テキスト図」で説明したものです。
読みやすくするため、外側ループ:i、内側ループ:j の例で示します。


まずコード例(とても短い)

for i in range(1, 4):          # 外側ループ: i = 1,2,3
    for j in range(1, 4):      # 内側ループ: j = 1,2,3
        if j == 2:
            continue           # ← ここに注目
        print(i, j)
Python

テキスト図解:continue は 「入っているループだけ」 に効く

図の読み方

  • → は処理の流れ
  • × はその回の残り処理のスキップ
  • ⟳ はループ先頭へ戻る
  • 外側ループは 大きい枠、内側ループは 小さい枠

全体のイメージ(俯瞰図)

外側ループ(i)
└─ 内側ループ(j)
      ├─ j == 1 → 通常処理
      ├─ j == 2 → continue(内側ループだけスキップ → jループの次へ)
      └─ j == 3 → 通常処理
(この内側ループが終わると、次の i に進む)

詳細な流れ(ステップごとの図解)

i = 1 のとき

i=1
┌───────────────────────────────────┐
│  j=1 → 条件(j==2?) false → print(1,1)                      │
│  j=2 → 条件(j==2?) true  → continue → × print → ⟳ j=3へ │
│  j=3 → 条件(j==2?) false → print(1,3)                      │
└───────────────────────────────────┘

(結果: (1,1), (1,3) が出力される)


i = 2 のとき

i=2
┌──────────────────────────────┐
│  j=1 → print(2,1)                                  │
│  j=2 → continue → × print → ⟳                   │
│  j=3 → print(2,3)                                  │
└──────────────────────────────┘

i = 3 のとき

i=3
┌──────────────────────────────┐
│  j=1 → print(3,1)                                  │
│  j=2 → continue → × print → ⟳                   │
│  j=3 → print(3,3)                                  │
└──────────────────────────────┘

continue が効いているのは 内側ループだけ

図で強調すると:

for i in ...:
    for j in ...:
        if j == 2:
            continue   ← これが効くのは「jループ」だけ

外側の i を飛ばしたりスキップしたりは しません


「どのループに効くのか」視覚化した図

外側ループ(i)
┌───────────────────────────────────────┐
│   内側ループ(j)                                                      │
│   ┌───────────────────────────────┐        │
│   │   if j == 2: continue  ← ★ここ                       │        │
│   └───────────────────────────────┘        │
│        ↑↑↑ continue はここ(内側)だけ                             │
└───────────────────────────────────────┘

まとめ(初心者向け)

  • continue「いま書かれているそのループだけ」 をスキップします
  • ネストされていても、外側ループには影響しません
  • 今いるループの「その1回分」をスキップして、同じループの先頭へ戻るだけです
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました