今回は、Pythonで多重ループからbreak(抜ける)する方法を解説していきます。
目次
多重ループとは
多重ループとは
まず、最初に多重ループとは、複数のループがネスト(入れ子)になったものを指し、ループを途中で抜けるには、breakキーワードを使います。
(例)二重の多重ループ
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
for item1 in list1:
for item2 in list2:
print("list1=", item1, ", list2=", item2)
# 実行結果:
# list1= a , list2= 1
# list1= a , list2= 2
# list1= a , list2= 3
# list1= b , list2= 1
# list1= b , list2= 2
# list1= b , list2= 3
# list1= c , list2= 1
# list1= c , list2= 2
# list1= c , list2= 3
二重ループ breakでループを抜ける
二重ループ
breakでループを抜ける
途中でループを抜けるにはbreakキーワードを使います。
(例)list1の値が「’b’」かつlist2の値が「2」のときに二重ループを途中で抜ける場合
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
for item1 in list1:
for item2 in list2:
print("list1=", item1, ", list2=", item2)
if(item1=='b' and item2==2):
break
if(item1=='b'):
break
# 実行結果:
# a , 1
# a , 2
# a , 3
# b , 1
# b , 2
# BREAK
三重ループ
三重ループも、ネストが深くなっているだけで考え方は同じです。
(例)listを3つ使った三重ループ
list1 = [1, 2, 3]
list2 = [40, 50, 60]
list3 = [700, 800, 900]
flag = False
for i in list1:
for j in list2:
for k in list3:
print(i, j, k)
if i == 2 and j == 50 and k == 800:
flag = True
print('BREAK')
break
if flag:
break
if flag:
break
# 実行結果:
# 1 ,40 , 700
# 1 ,40 , 800
# 1 ,40 , 900
# 1 ,50 , 700
# 1 ,50 , 800
# 1 ,50 , 900
# 1 ,60 , 700
# 1 ,60 , 800
# 1 ,60 , 900
# 2 ,40 , 700
# 2 ,40 , 800
# 2 ,40 , 900
# 2 ,50 , 700
# 2 ,50 , 800
# BREAK
else~continueでループを抜ける
else~continueでループを抜ける
breakでループを抜ける他に、elseとcontinueキーワードを使う方法もあります。
elseの部分は、break以外で通った時に実行され、continueキーワードから後続の処理をスキップしてループの先頭に戻ることができます。
(例)list1の値が「’b’」かつlist2の値が「2」のときに多重ループを途中で抜ける場合
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
for item1 in list1:
for item2 in list2:
print("list1=", item1, ", list2=", item2)
if(item1 == 'b' and item2 == 2):
break
else:
continue
break
# 実行結果:
# a , 1
# a , 2
# a , 3
# b , 1
# b , 2
# BREAK
まとめ: Python 多重ループから抜け出す方法
まとめ: Python 多重ループから抜け出す方法
今回は、Pythonの多重ループから抜け出す方法について解説しました。
- 多重ループについて
- 二重ループ breakでループを抜ける書き方
- 三重ループについて
- else~continueでループを抜ける書き方