1、定義標記變量;利用變量值的變化退出循環
1 # 第一種嵌套形式
2 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]] 3 # init_i = 0
4 # init_j = 0
5 flag = True 6 for i in range(3): 7 for j in range(3): 8 # print(i, j)
9 if a[i][j] == 5: 10 flag = False 11 init_i = i 12 init_j = j 13 break
14 if not flag: 15 break
16 print(init_i, init_j) 17 print(i, j) 18
19 # 第二種嵌套形式
20 flag = True 21 while flag: 22 for i in range(10): 23 print(x) 24 flag = False 25 break
2、使用函數配合return關鍵字 實現跳出循環(在函數內部只要執行完return語句 則直接退出函數)
1 def test(): 2 while True: 3 for x in range(10): 4 print(x) 5 return 6 test()
3、利用else continue 和外層的break跳出循環
1 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]] 2 init_i = 0 3 init_j = 0 4 flag = True 5 for i in range(3): 6 for j in range(3): 7 # print(i, j) 8 if a[i][j] == 5: 9 flag = False 10 init_i = i 11 init_j = j 12 break 13 else: 14 continue 15 break 16 # if not flag: 17 # break 18 print(init_i, init_j) 19 print(i, j) 20 21 while True: 22 for x in range(4): 23 print(x) 24 if x == 2: 25 break 26 else: 27 print("未執行") 28 continue 29 break
Python 本身沒有“break n” 和“goto” 的語法,這也造成了Python 難以跳出多層(特定層數)循環。下面是幾個跳出多層(特定層數)循環的tip。
4、跳出多層
1 def test1(): 2 for i in range(5): 3 for j in range(5): 4 for k in range(5): 5 if i == j == k == 3: 6 return 7 else: 8 print(i, '----', j, '----', k) 9 test1()
5、for ... else ... 用法(跳出特定層數的循環)
1 for i in range(5): 2 for j in range(5): 3 for k in range(5): 4 if i == j == k == 3: 5 break 6 else: 7 print( i, '----', j, '----', k) 8 else: continue 9 break 10 else: continue 11 break