ループから抜ける、次のループ処理に移る
記事の内容
ループ処理では、繰り返し処理の途中でループを抜け出したり、もしくは繰り返し処理の後ろを無視して次のループ処理に移ったりしたくなることがあります。
この記事では、繰り返し処理の途中でループを抜け出す"break"と、繰り返し処理の後ろを無視して次の処理に移る"continue"の使い方についてサンプルプログラムを使って説明します。
多重ループでbreakやcontinueを利用する場合、breakやcontinueを記述したブロックを含む一番内側のループに対して作用します。また、breakとcontinueは、この後の記事で説明するwhile文のループでも利用することができます。
***わからない用語があるときは索引ページへ***
1.breakの使い方
"for_ex3.py"は、listの中の最小の偶数を見つけ出すサンプルプログラムです。偶数要素がない場合は「偶数要素がない」と出力します。
リストの要素を昇順に並べ替え、最初に偶数が見つかったらそれが最小の偶数要素なので、breakでループを抜け出しています。
##for_ex3
##listの中の最小の偶数を求める
list1 = [3, 8, 5, 4, 9, 6]
print("list1:", list1)
##要素を昇順に並べ替え
list1.sort()
min_even_num = 1
for num in list1:
##2で割る
mod = num % 2
##余りが0なら偶数
##最小の偶数を求めるだけなので、偶数が見つかったら
##min_even_numに代入してbreakでループを抜ける
if mod == 0:
min_even_num = num
break
if min_even_num == 1:
print("list1に偶数は含まれていません")
else:
print("list1の最小の偶数要素は", min_even_num, "です")
出力結果
list1: [3, 8, 5, 4, 9, 6]
list1の最小の偶数要素は 4 です
2.continueの使い方
"for_ex3.py"は、listの中の要素の中から、2で割り切れる要素を抜き出したリストと、4で割り切れる要素を抜き出したリストを作成するサンプルプログラムです。
奇数の場合は2でも4でも割り切れないので、continueで次のループ処理へ移っています。
##for_ex3
##listの要素の中から、2で割り切れる要素のリストと
##4で割り切れる要素のリストを抜き出して作成する
list1 = [3, 8, 5, 4, 9, 6]
print("list1:", list1, "\n")
##空のリストを作成
list_baisu2 = []
list_baisu4 = []
for num in list1:
##2で割った余りを求める
##奇数の場合は2でも4でも割り切れないので
##次のループ処理へ
if num % 2 == 1:
continue
##奇数でなければ2で割れるので数をlist_baisu2の要素として追加
list_baisu2.append(num)
##4で割り切れる数をlist_baisu4の要素として追加
if num % 4 == 0:
list_baisu4.append(num)
##結果を出力
print("list1の要素の中で2で割り切れる要素のリスト:", list_baisu2)
print("list1の要素の中で4で割り切れる要素のリスト:", list_baisu4)
出力結果
list1: [3, 8, 5, 4, 9, 6]
list1の要素の中で2で割り切れる要素のリスト: [8, 4, 6]
list1の要素の中で4で割り切れる要素のリスト: [8, 4]
この記事が気に入ったらサポートをしてみませんか?