for, while で else
Python で for
, while
文を使用するときに else
句が使用できます。if
文で使用する else
句と違い意味で使用します。ほかの言語だとあまり見ない使い方で、最近まで知らなかったので、使い方をまとめます。
for文の else
for
文で使用する else
句は for
文でのループ宙に break
されなかった場合 に実行されるコードブロックを定義できます。for
文でのループ中にフラグでチェックを行い、その結果で何かしらの処理を実行したい場合などに使用できます。
# break されない場合
print('break されない場合')
for val in [1, 2, 3, 4, 5]:
print(f'val={val}')
else:
print('else')
# break される場合
print('break される場合')
for val in [1, 2, 3, 4, 5]:
if val == 3:
break
print(f'val={val}')
else:
print('else')
実行結果は以下のようになります。
break されない場合
val=1
val=2
val=3
val=4
val=5
else
break される場合
val=1
val=2
ループが最後まで実行された場合は else
句が実行され、break
でループから抜けた場合には実行されていないことが分かります。
while文の else
while
文の場合も使い方は似ています。ループが最後まで実行された場合(while
の条件で抜けた場合)に else
句が実行され、break
した場合には実行されません。
# break されない場合
print('break されない場合')
val = 0
while val < 3:
print(f'val={val}')
val += 1
else:
print('else')
# break される場合
print('break される場合')
val = 0
while True:
print(f'val={val}')
val += 1
if val == 3:
break
else:
print('else')
簡単な判定処理なら、ループ中にフラグ変数を管理しなくても実装できそうで便利です。
以上。
コメントを書く