制御構文 中級

25. else句をループと組み合わせる

ループのelse句

Pythonには、for文やwhile文にelseを付けられるという、少し珍しい機能があります。このelse句が実行されるのは「ループがbreakされずに、最後まで無事に完走できたとき」だけです。逆に言えば、途中でbreakされた場合はelse句はスキップされます。

💡 ヒント:「リストの中から目的のものを探して、見つからなかったときだけ特別な処理をしたい」というような、探索系の処理でよく使われるテクニックです。

サンプルコード

numbers = [1, 3, 5, 7]
for n in numbers:
    if n % 2 == 0:
        print('偶数を発見')
        break
else:
    print('偶数はありませんでした')
numbersの中身はすべて奇数なので、if文の条件(偶数かどうか)は一度もTrueにならずbreakも実行されません。そのため最後まで無事にループが完走し、else句の「偶数はありませんでした」が実行されます。

📝 練習問題

練習問題:[2, 4, 6, 9]の中に奇数が含まれるかをfor-elseで判定してください。