ループの抜け道と落とし穴
for文やwhile文で繰り返し処理をしている時、「ある条件の場合だけループを途中でやめたい」あるいは「今回だけスキップしたい」という場面があります。
ここでは、ループを自由にコントロールするための3つのキーワード break、continue、そしてPython特有の else について学びましょう。
1. 途中でやめる (break)
ループを完全に終了し、外に抜け出す魔法の言葉が break です。 RPGで「宝箱からカギを見つけたら、もうそれ以上探す必要はないから帰る」というような場面で使います。
2. 今回だけスキップする (continue)
continue は、「ループを完全にやめる」のではなく、「今回の周だけ処理をスキップして、次の周へ行く」という働きをします。
例えば、嫌いな食べ物だけ避けて、他のものは全部食べるようなイメージです。
💡 break と continue の違い
break: 学校を早退する(もう今日は帰る)continue: 苦手な授業だけサボって、次の授業には出る(今回だけスキップ)
3. 探し物が見つからなかった時の else
Pythonには、他のプログラミング言語にはあまりない面白い機能があります。
ループ(for や while)の後ろに else: をつけることができるのです。
この else は、「break で途中で中断されることなく、ループが最後まで無事に回りきった時」にだけ実行されます。「探し物を全部探したけど、結局見つからなかった…」という処理を書くのに非常に便利です。
もし search_target = "魔法使い" に書き換えて実行するとどうなるか、ぜひ試してみてください。break が実行されると、else のブロックは無視されます。
🎯 練習問題:アレルギーチェッカー
あなたはレストランのシェフです。
注文されたコース料理のなかに、お客さんのアレルギー食材「エビ」が入っていないかチェックします。for-else と break を組み合わせて、
1. エビが見つかったら "警告:エビが入っています!" と表示してチェックを打ち切る
2. 最後までエビが見つからなかった時だけ "安全です。提供できます。" と表示する
プログラムを完成させてください。