continue 的作用:只要程序遇到 continue ,本次循环就不继续了,直接进入下一次循环
break 的作用:只要程序遇到 break ,就会结束当前这个循环。注意如果是多层嵌套循环,只结束当前这一层的循环。
____________________________________________________________________________________________
要求跳过第三层
continue:
for i in range(1,5): print(f"----------{i}层----------") for j in range(1,6): if i == 3: continue print(f"L{i}-{i}0{j}室") #执行结果 ----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- ----------4层---------- L4-401室 L4-402室 L4-403室 L4-404室 L4-405室
break:
for i in range(1,5): print(f"----------{i}层----------") for j in range(1,6): if i == 3: #print("-") break print(f"L{i}-{i}0{j}室") #执行结果 ----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- ----------4层---------- L4-401室 L4-402室 L4-403室 L4-404室 L4-405室
可以看见第三层无论 continue 还是 break 是没有输出的,那么真的跳过了吗,看下面代码
continue:
----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- - - - - - ----------4层---------- L4-401室 L4-402室 L4-403室 L4-404室 L4-405室
break:
----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- - ----------4层---------- L4-401室 L4-402室 L4-403室 L4-404室 L4-405室
可以看到 continue 第三层小循环每一次都执行了,只是没有显示内容。break 判断了一次跳过了该次小循环。
————————————————————————————————————————————————
但是我们要的是跳出第三层小循环,刚才那个肯定不行,那么怎么改呢?
continue:
for i in range(1,5): print(f"----------{i}层----------") if i == 3: print("三层不通") continue for j in range(1,6): print(f"L{i}-{i}0{j}室") #执行结果 ----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- 三层不通 ----------4层---------- L4-401室 L4-402室 L4-403室 L4-404室 L4-405室
我们把 continue 放在外层,可以看到,跳过了第三层循环。
那么 break 放在外层会是什么效果呢:
for i in range(1,5): print(f"----------{i}层----------") if i == 3: print("三层不通") break for j in range(1,6): print(f"L{i}-{i}0{j}室")
#执行结果
----------1层----------
L1-101室
L1-102室
L1-103室
L1-104室
L1-105室
----------2层----------
L2-201室
L2-202室
L2-203室
L2-204室
L2-205室
----------3层----------
三层不通
可以看到 break 到第三层小循环直接结束了进程。
——————————————————————————————————————————————
新需求:跳过 404 ,继续走
我们需要判断两个值,i 的层数为 4 ,j 的房间号也为 4 。
break:
for i in range(1,6): print(f"----------{i}层----------") if i == 3: print("三层不通") continue for j in range(1,6): if i == 4 and j == 4: print("遇到 404 房间,不吉利,跳过") break print(f"L{i}-{i}0{j}室") #执行结果 ----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- 三层不通 ----------4层---------- L4-401室 L4-402室 L4-403室 遇到 404 房间,不吉利,跳过 ----------5层---------- L5-501室 L5-502室 L5-503室 L5-504室 L5-505室
continue:
for i in range(1,6): print(f"----------{i}层----------") if i == 3: print("三层不通") continue for j in range(1,6): if i == 4 and j == 4: print("遇到 404 房间,不吉利,跳过") continue print(f"L{i}-{i}0{j}室") #执行结果 ----------1层---------- L1-101室 L1-102室 L1-103室 L1-104室 L1-105室 ----------2层---------- L2-201室 L2-202室 L2-203室 L2-204室 L2-205室 ----------3层---------- 三层不通 ----------4层---------- L4-401室 L4-402室 L4-403室 遇到 404 房间,不吉利,跳过 L4-405室 ----------5层---------- L5-501室 L5-502室 L5-503室 L5-504室 L5-505室
这里使用 continue 结束本次 404 小循环,继续下一个小循环 405
break 到了 404 结束了本轮循环,进入下一层循环