Pythonのループはfor文やwhile文を使ってループします。
でも、抜け方が今イチわからないアナタへ…
『どうやってループを途中で抜けるの?』
『ループのelseはどんなとき実行されるの?』
こんな疑問に答えます。
【Python】for・whileループを途中で抜けるbreak
Pythonのループ処理はfor文やWhile文が基本。
ループというからには抜け出さなければ、無限ループとなりますよね。
通常は、ループを抜ける条件(終了条件)を指定します。
強制的にループを抜ける命令は「break」!
「break」の使い方はfor文でもwhile文でも全く同じです。
for文とwhile文で、それぞれ例文を見ていきましょう。
for文を途中で抜けるbreak
for文の書式とbreakを実装する例文です。
for インデックス変数 in イテラブルオブジェクト:
処理(ここに途中でループ抜ける条件とbreakを書く)
イテラブルオブジェクトについてはコチラの記事
forループを途中で抜けるbreakの例文
# 【breakの例文】for文のrangeオブジェクト
for i in range(3):
print(i)
if i == 1:
break
0 1
rangeは連番を作成するイテラブルオブジェクト。
range(3)をリストにすると[0, 1, 2]となります。
rangeについてはコチラの記事
for文で取得したrangeをループさせると…
インデックス変数iが0→1→2の順に処理されるはずです。
しかし、
printは0→1で終わっています。最後の2は表示されてませんね。
最後の2が表示されない理由は…
インデックス変数iが1の時、「break」で強制的にループを抜けているためです。
コードでいうと「i==1でbreak」の箇所。
わかったかのぅ
この「break」の考え方はfor文でもwhile文でも全く同じですよ♪
while文を途中で抜けるbreak
while文の書式とbreakを実装する例文です。
while 条件式:
処理(ここに途中でループ抜ける条件とbreakを書く)
- 条件式を満たす(True)の間は処理を実行し続ける
- breakで処理を終了する
whileループを途中で抜けるbreakの例文
i = 0
while i < 3:
print(i)
if i == 1:
break
i += 1
0 1
インデックス変数iが3より小さい間ループするので、
iはインクリメントされて、0→1→2と3回ループするはずですが、
printは0→1で終わっています。最後の2は表示されません。
最後の2は表示されない理由は、先程のfor文と全く同じ。
インデックス変数iが1の時、「break」で強制的にループを抜けているためです。
コードでいうと「i==1でbreak」の箇所です。
while文もfor文と全く同じだね。
【Python】for・whileループのbreakとelseの関係
Pythonではループ処理に独特の文法があります。
それは…
ループ中に「break」されなかった場合、「else」に分岐するというものです。
ここで「break」と「else」の関係をキッチリ学んでいきましょう。
どんな処理をイメージする?
for文やWhile文にもelse
があるんじゃよ
Pythonではif文以外にfor文・While文と例外処理のtry~chatch文にelseが使用されます。
今回はfor文・While文のelseについて学びましょう!
for文・While文のelseはどんな時に使用されるの?
for文・While文でelseブロックは「break」でループを強制終了しなかった時に実行されます。
書式と例文で考えてみよう♪
breakとelseの構文ですが、基本はfor文でもwhile文でも同じ構文です。
for 変数名 in イテラブルオブジェクト
処理①(breakも書ける)
else:
処理②
while 条件式:
処理①(breakも書ける)
else:
処理②
ポイントは…
処理①でbreakが実行されなかった場合、elseブロック内の処理②が実行される
ということです。for文でもwhile文でも同じですよ。
それぞれ例文をみてみましょう。
例文でLet’s Study!ループをbreakで強制的に抜けるケース
ループを条件指定で強制的にbreakする例文です。
for文とwhile文でそれぞれ説明します。
【例文】forループ
for i in range(5):
# 処理①
print(i)
if i == 3:
break
else:
# 処理②
print("elseじゃよ")
0 1 2 3
イテラブルオブジェクトであるrange(5)は[0, 1, 2, 3, 4]
最終要素は4ですが、3の時にbreakで強制的にループを抜けています。
breakが実行されたので、elseブロックは実行されてませんね。
elseブロックは実行されないってコトだね!
【例文】whileループ
while文も考え方はforループと全く同じ。
whileループを条件指定で強制的にbreakする例文です。
i = 0
while i < 5:
# 処理①
print(i)
if i == 3:
break
i += 1
else:
# 処理②
print("elseじゃよ")
0 1 2 3
イテラブルオブジェクトであるrange(5)は[0, 1, 2, 3, 4]
最終要素は4ですが、3の時にbreakで強制的にループを抜けています。
breakが実行されたので、elseブロックは実行されてませんね。
例文でLet’s Study!ループ中にbreakを実行しないケース
ループでbreakせずにループを終了する例文です。
for文とwhile文でそれぞれ説明します。
【例文】forループ
for i in range(5):
# 処理①
print(i)
if i == 5:
break
else:
# 処理②
print("elseじゃよ")
0 1 2 3 4 elseじゃよ
イテラブルオブジェクトであるrange(5)は[0, 1, 2, 3, 4]です。
breakが実行されていないので、途中でループを抜けずに最後までループします。
print表示も0 1 2 3 4と実行され、elseブロックも実行されます。
コードにはbreak文を書いているのに、
なぜelseブロックが実行されるの?
実行されたかどうかじゃ
break文を実装していても、ループでbreakが実行されなければ、elseブロックが実行されます。
つまり、
else内が実行される条件は「breakが実行されたどうか」です。
「breakを実装したかどうか」ではなく
「breakが実行されたどうか」がポイントってこと。
わかったよ!
【例文】whileループ
whileループでbreakせずにループを終了する例文です。
考え方はfor文と全く同じ。
i = 0
while i < 5:
# 処理①
print(i)
if i == 5:
break
i += 1
else:
# 処理②
print("elseじゃよ")
0
1
2
3
4
elseじゃよ
パターンⅠ
処理①でbreakが実行された(強制的にループを抜けた)場合
⇒elseブロック内の処理②は未実行
パターンⅡ
処理①でbreakしなかった(イテラブルオブジェクトの最終要素でループを抜けた)場合
⇒elseブロック内の処理②が実行
※break文を書いていても、実行されなければelseブロックが実行される
【Python】まとめ!ループを抜けるbreakとelseの関係
いかがでしたでしょうか。
Pythonのfor文とwhile文を使用したループを途中で抜けるbreak
breakとelseの関係について紹介いたしました。
振り返ってみましょう!
for・Whileループを途中で抜けるbreak
iが1の時、強制的にループを抜ける例文です。
【for文】
# 【breakの例文】for文のrangeオブジェクト
for i in range(3):
print(i)
if i == 1:
break
【while文】
i = 0
while i < 3:
print(i)
if i == 1:
break
i += 1
for・Whileループのbreakとelseの関係まとめ
ループ内でbreakを実行しなかった場合、elseブロックが実行される
※ループ内にbreakが存在してても、実行しければelseブロックが実行される
for 変数名 in イテラブルオブジェクト
処理①(breakも書ける)
else
処理②
処理①でbreakが実行されなかった場合、elseブロック内の処理②が実行
while 条件式:
処理①(breakも書ける)
else:
処理②
処理①でbreakが実行されなかった場合、elseブロック内の処理②が実行
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級