第7回Python基礎講座】ループの裏技:breakとelseの組み合わせ

本ページはプロモーションが含まれています
【第7回Python基礎講座】ループの裏技:breakとelseの組み合わせ
国内のAI狂い

やっほー!国内のAI狂いだよ!✨

第7回へようこそ!前回はループ(繰り返し)の基本を学んだけど、今回はその「操縦方法」をマスターするよ。
「途中でやめたい!」とか「今回はパス!」といったワガママな動きも、Pythonならお手の物。
そして、Python特有のちょっと変わった機能「ループのelse」もしっかり解説するから、試験対策もバッチリだよ!💪🔥

公式の「ここがわかりにくい」:ループのelseってifのelseじゃないの?

公式チュートリアルには、こんな不思議な説明があるよ。

ループ文は else 句を持つことができます。これは、ループが (for 文で) リストを使い切って終了した場合、または (while 文で) 条件が偽になって終了した場合に実行されますが、ループが break 文で終了したときは実行されません。

「えっ、elseって『もし条件に合わなかったら』って意味じゃないの?」って混乱するよね。
実はループにつく else は、「ループが無事に(中断されずに)完走しました賞」だと思ったほうが分かりやすいんだ!🏅
後で詳しく実験するから、今は「if文のelseとは別物!」ってことだけ覚えておいてね。

1. break文:ループからの緊急脱出!

要するにこれは「強制終了ボタン」だよ!

ループの途中で「もう目的は達成したから終わりたい!」って時に使うのが break 文だよ。
これを使うと、ループの残り回数が何回あろうが、即座にループの外へ脱出するんだ。

🐍 サンプルコードを見る(クリックで開閉)
# 「3」が見つかったら終わりたい!
numbers = [1, 2, 3, 4, 5]

for n in numbers:
    print(f"{n} をチェック中...")
    if n == 3:
        print("3が見つかった!脱出!")
        break  # ここでループ強制終了!

print("ループが終わったよ")
💻 実行結果:
1 をチェック中…
2 をチェック中…
3 をチェック中…
3が見つかった!脱出!
ループが終わったよ

break があると、それ以降の 4 や 5 のチェックは行われないのがポイントだね!

2. continue文:今回はパス!次へ行こう

要するにこれは「スキップボタン」だよ!

「今回のデータは処理したくないけど、ループ自体は続けたい」って時に使うのが continue 文。
これを使うと、それ以降の処理を飛ばして、次のループの先頭に戻るんだ。

🐍 サンプルコードを見る(クリックで開閉)
# 偶数だけ表示したい(奇数はスキップ)
for i in range(1, 6):
    if i % 2 != 0:  # 奇数なら
        print(f"{i} は奇数なのでスキップ!")
        continue    # ここで次の周回へジャンプ!
    
    # continueされると、ここの処理は実行されない
    print(f"★ {i} は偶数です")
💻 実行結果:
1 は奇数なのでスキップ!
★ 2 は偶数です
3 は奇数なのでスキップ!
★ 4 は偶数です
5 は奇数なのでスキップ!

3. 【試験頻出】ループのelse:完走したご褒美

ここが今回の最重要ポイント!🚨
forwhile の後ろに else: をつけることができるんだ。

【超重要】ループのelseが実行される条件
  • breakされずにループが最後まで回りきった時 → 実行される⭕
  • 途中でbreakして脱出した時 → 実行されない❌

これは「探索プログラム」を作るときにめちゃくちゃ便利なんだよ。
「全部探したけど(ループ完了)、見つからなかった(breakしなかった)」という判定が簡単に書けるからね!

🐍 素数判定プログラムで実験(クリックで開閉)
# 2から9までの数字について、素数かどうか調べる
for n in range(2, 10):
    # 2から n-1 までの数で割り切れるかチェック
    for x in range(2, n):
        if n % x == 0:
            print(f"{n} は {x} * {n//x} なので素数じゃない")
            break  # 割り切れたら調査終了(break)
    else:
        # breakされずに内側のループが終わった=割り切れる数がなかった
        print(f"{n} は素数です!✨")
💻 実行結果:
2 は素数です!✨
3 は素数です!✨
4 は 2 * 2 なので素数じゃない
5 は素数です!✨

この elseif の仲間じゃなくて、あくまで for の仲間。
「breakしなかった時の処理」と覚えるのが正解だよ!

4. pass文:何もしないをする

最後に地味だけどたまに使う pass 文を紹介するね。
これは文字通り「何もしない」という命令。
「とりあえず文法上ここに何か書かないとエラーになるけど、今は書くことがない」って時のプレースホルダー(仮置き)として使うよ。

🐍 サンプルコードを見る(クリックで開閉)
# 将来ここにすごい機能を実装する予定...
def super_function():
    pass  # passがないとエラーになる!

# 無限ループの待機中などにも使う
# while True:
#     pass

試験に出る!要注意ポイント

今回の範囲で、Python 3 エンジニア認定基礎試験によく出るひっかけポイントをまとめたよ!📝

① ループのelseの実行タイミング

試験では必ず「このコードを実行した時、elseブロックは実行されますか?」と聞かれるよ。
判定基準はただ一つ、「breakを通ったかどうか」
ループ条件が最初からFalseで、一度もループしなかった場合も「完走」とみなされて else は実行されるから注意してね!

② continueの位置

continue は「その周回の残りをスキップ」する。
continue より前に書いた処理は実行されるけど、後ろに書いた処理は無視されるよ。

💡 管理人の失敗エピソード
初めて break を使った時、入れ子(ネスト)になったループの中で使って、「全部のループから抜けられる!」と思ったら内側だけしか抜けなくて無限ループになったことがあるよ😱
break「一番内側のループ」しか脱出できないんだ。外側まで一気に抜けたい時は、フラグ変数を使ったり関数化して return したりする工夫が必要だよ!

理解度チェック!ミニクイズ

breakとcontinue、そしてelseの挙動は理解できたかな?
試験レベルの問題でチェックしてみよう!🔍

以下のコードを実行した結果は?
for i in range(3):
  if i == 1: continue
  print(i, end='')
  1. 012
  2. 02
  3. 0
▼ クリックで正解を表示
正解: 2. 02

解説:
i が 0 の時は表示。
i が 1 の時は continue でスキップ(表示されない)。
i が 2 の時は表示。
よって「02」となるよ。

ループの else 節が実行されるのはどんな時?
  1. break文でループが終了した時
  2. break文が実行されずにループが終了した時
  3. continue文が実行された時
▼ クリックで正解を表示
正解: 2. break文が実行されずにループが終了した時

解説:
break で中断された時は else は無視されるよ。
最後まで完走したご褒美が else なんだね。

構文的に何か書く必要があるが、何もしない場合に使う文は?
  1. stop
  2. continue
  3. pass
▼ クリックで正解を表示
正解: 3. pass

解説:
pass は「何もしない」という文だよ。
breakcontinue は処理の流れを変えちゃうけど、pass はただ通り過ぎるだけ!

まとめ:次回への引き

今回は「break, continue, else」について解説したよ!
これでループ処理を完全にコントロールできるようになったね✨

次回は、プログラムを見やすく便利にするためのテクニック!
テーマは「結果を綺麗に表示!f-string(書式化)」だよ。
"答えは" + str(ans) + "です" みたいな面倒な書き方とはサヨナラ!魔法のように変数を埋め込む方法を紹介するからお楽しみに!👋✨

出典: Python公式チュートリアル
Copyright © 2001-2026 Python Software Foundation. Licensed under the PSF License.

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