文系出身がPythonで混同したbreakとcontinueの違い

文系出身がPythonで混同したbreakとcontinueの違い

2026.06.05

はじめに

文系出身未経験から新卒で入社し、約2ヶ月が経過しました!
現在、研修で一通りPythonについての学習を終えました。
Pythonを勉強していると、ループ処理を制御する方法が複数あることに気づき、その中でbreakcontinueの違いに疑問を抱きました。
文系出身で、プログラミングの経験がなかった私は、両方とも「ループを止める」という意味だと思い込んでいましたが、実装してみると、この2つはループの制御方法が全く異なることに気づきました。
この記事では、私が実際に混同していたbreakcontinueの違いを、具体例と一緒にまとめます。

break |ループ全体を終了する

breakを実行すると、そのbreak文を囲んでいる最も内側のループが終了します。
条件を満たした瞬間、そのループの残りの処理は実行されません。
ネストされたループの場合、breakで終了するのは最も内側のループだけで、外側のループはそのまま続きます。

breakの特徴

breakには以下の特徴があります。

  • ループを完全に抜ける
  • ネストされたループの場合は、最も内側のループだけを抜ける
  • ループのelse句は実行されない
  • ループ変数はその時の値を保持する

break文は、そのbreak文を囲っている最も内側のループだけを終了させます
例えば、2つのループがネストされている場合、内側のループでbreakを使うと、内側のループだけが終わり、外側のループは続きます。
外側のループも終わらせたい場合は、別の方法(関数を使うなど)が必要になります。
また、breakでループを抜けると、ループのelse句は実行されません。
これは「ループが最後まで完了した」わけではなく、「途中で抜けた」ということを表しています。
さらに、forループをbreakで終了した場合、ループ変数(例えばi)はその時の値のまま保持されます。
つまり、ループを抜けた後もその変数にアクセスできるということです。

breakの例

# 例1:特定の値に達したらループを終了
for i in range(10):
    if i == 5:
        break
    print(i)
# →0, 1, 2, 3, 4

# 例2:ユーザーが正しい入力をするまで聞き続ける
while True:
    password = input("パスワードを入力してください: ")
    if password == "1234":
        print("ログイン成功!")
        break  # ここでループ終了
    else:
        print("パスワードが違います")

continue |その周だけスキップする

continueを実行すると、現在のイテレーションの残りの処理をスキップして、
次のイテレーションに進みます。
ループ全体は終了しません。

continueの特徴

continueには以下の特徴があります。

  • その1回だけスキップする
  • ループは続く
  • ネストされたループの場合は、最も内側のループのみに影響する
  • ループのelse句は実行される(ループが正常に完了した場合)

continue文は、文を囲っている最も内側のループの次のサイクルに進みます。
つまり、現在のイテレーション(繰り返し)の残りの処理をスキップして、次のイテレーションを開始するということです。
breakと異なり、continueを使ってもループ全体は終わりません。
現在のイテレーションの残りの処理をスキップし、次のイテレーションに進みます。
そのため、continueに到達してもその後、breakされずにループが完了した場合、ループのelse句は実行されます。
ネストされたループの場合、continueは最も内側のループのみに影響し、外側のループには影響を与えません。

continueの例

# 例1:特定の値だけスキップ
for i in range(5):
    if i == 3:
        continue  # 3だけスキップ
    print(i)
# →0, 1, 2, 4

# 例2:3の倍数を除いて表示
for i in range(1, 11):
    if i % 3 == 0:
        continue  # 3の倍数はスキップ
    print(i)
# →1, 2, 4, 5, 7, 8, 10

else句について

Pythonのループにはelse句を付けることができます。
これはbreakcontinueの動作を理解する上で重要です。

else句の特徴

else句には以下の特徴があります。

  • ループが最後まで実行された場合に実行される
  • breakで終了した場合は実行されない
  • continueで途中をスキップしても、ループが最後まで実行されれば実行される
  • 例外が発生した場合は実行されない

ループのelse句は、ループがbreakによって途中で終了されなかった場合に実行されます
forループの場合、すべてのイテレーション(繰り返し)が完了した後にelse句が実行されます。
whileループの場合、ループ条件が偽になった後にelse句が実行されます。
どちらのループでも、breakによってループが終了した場合はelse句は実行されません。
また、return文や例外が発生してループが途中で終了した場合も、else句は実行されません。
ループのelse句を理解する一つの方法は、try文のelse句と比較することです。
try文のelse句は例外が発生しなかった時に実行されますが、ループのelse句は**breakされずにループが終了した場合に実行される**という点で似ています。
つまり、「予定通りループが終了した」ことを示しているのです。

else句の例

# 例1:break に到達しない場合、else 句が実行される
for i in range(5):
    print(i)
else:
    print("ループが正常に完了しました")
# →0, 1, 2, 3, 4
# →ループが正常に完了しました

# 例2:break に到達した場合、else 句は実行されない
for i in range(5):
    if i == 3:
        print("ループを抜けます")
        break
    print(i)
else:
    print("この行は実行されません")
# →0, 1, 2
# →ループを抜けます

break vs continue の違いを表で比較

項目 break continue
動作 最も内側のループを終了する 現在のイテレーションの残りをスキップする
ループは続く? そのループは続かない 次のイテレーションに進む
残りの処理 現在のループの残りを実行しない 現在のイテレーションの残りだけ実行しない
ネストされたループ 最も内側のループのみ抜ける 最も内側のループの次のイテレーションへ進む
else 句の実行 breakした場合は実行されない breakされずに終了すれば実行される
使う場面 条件を満たしたので探索・処理を終了したい 無効なデータなどを今回だけ除外したい

日常生活で例えると

授業を5時間受ける場面を想像します。

breakの場合
3時間目に帰宅する

残りの授業(4時間目、5時間目)も全て欠席する

ループ全体が終わる

continueの場合
3時間目だけ欠席する

4時間目からまた出席する

ループは続く

breakは「ループそのものを終わらせる」決定的な選択です。
一度breakに到達すると、ループの残りの処理は一切実行されません。
これは、検索で目的の物が見つかった時や、エラーが発生して処理を中止する必要がある時に使います。
一方、continueは「今回の処理だけをスキップする」という選択です。
ループ自体は続くため、次のイテレーションでは通常通り処理が実行されます。
これは、特定の条件のデータだけを除外したい時や、無効なデータをスキップしたい時に使います。
つまり、breakは「ループを終わらせる終了ボタン」で、continueは「今回だけスキップするボタン」と考えると分かりやすいです。

break を使うべき場面

# 場面1:検索して見つかったら終了
students = ["Takuya", "Hikaru", "Kazuya", "Haruki"]
target = "Kazuya"
for student in students:
    if student == target:
        print(f"{target}が見つかりました")
        break
    print(f"{student}を確認中...")
# →Takuyaを確認中...
# →Hikaruを確認中...
# →Kazuyaが見つかりました

# 場面2:ユーザーが「終了」と入力するまで続ける
while True:
    user_input = input("コマンドを入力してください(終了するには'quit'と入力): ")
    if user_input == "quit":
        print("プログラムを終了します")
        break
    print(f"入力されたコマンド: {user_input}")

# 場面3:条件を満たしたら処理を中断
score = 0
for i in range(1, 11):
    score += i
    if score > 30:
        print(f"スコアが30を超えました: {score}")
        break

continue を使うべき場面

# 場面1:特定の値を除いて処理
for i in range(1, 6):
    if i == 3:
        continue  # 3だけスキップ
    print(f"処理中: {i}")
# →処理中:1
# →処理中:2
# →処理中:4
# →処理中:5

# 場面2:無効なデータをスキップ
data = [1, 0, 2, 0, 3, 0, 4]
for value in data:
    if value == 0:
        continue  # 0はスキップ
    print(f"有効なデータ: {value}")
# →有効なデータ:1
# →有効なデータ:2
# →有効なデータ:3
# →有効なデータ:4

# 場面3:特定の条件の時だけ処理をスキップ
for i in range(1, 11):
    if i % 2 == 0:
        continue  # 偶数はスキップ
    print(f"奇数: {i}")
# →奇数:1
# →奇数:3
# →奇数:5
# →奇数:7
# →奇数:9

実践的な使用例

例1:ユーザー認証
# break を使う場合:正しいパスワードで終了
attempts = 3
for attempt in range(attempts):
    password = input(f"パスワードを入力してください(残り{attempts - attempt}回): ")
    if password == "secret123":
        print("ログイン成功!")
        break
    else:
        print("パスワードが違います")
else:
    print("ログイン失敗。アカウントがロックされました。")

例2:ショッピングカート処理
# break を使う場合:予算を超えたら終了
cart = [1500, 2000, 800, 3000, 1200]
budget = 5000
total = 0
for price in cart:
    if total + price > budget:
        print(f"予算を超えるため、ここで終了します")
        break
    total += price
    print(f"商品を追加: {price}円(合計: {total}円)")
# →商品を追加: 1500円(合計: 1500円)
# →商品を追加: 2000円(合計: 3500円)
# →商品を追加: 800円 (合計: 4300円)
# →予算を超えるため、ここで終了します

まとめ

breakcontinueの使い分けは、以下のように考えるとわかりやすいです。

ループ処理をしている

「この時点でループ自体を終了したい?」

YES → breakを使う
NO

「今回の処理だけスキップして、次の繰り返しに進みたい?」

YES → continueを使う
NO → そのまま処理を続ける

最初はどちらもループを止めるだけだと思っていましたが、実際は上記のような違いがあります。
日常生活など具体的な場面に当てはめて考えると、想像しやすく理解を深めることができました。
特にelse句の存在により、breakcontinueの役割がより明確になることに気づきました。
検索処理のように「見つかったら終了、見つからなかったら別の処理」という場面では、else句と組み合わせることで、より読みやすく意図が明確なコードを書くことができます。
今後も、ひとつずつ理解を深めながら学習を進めていきたいです。

参考資料

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイトをぜひご覧ください。
※2026年1月 アノテーション㈱から社名変更しました。

この記事をシェアする

関連記事