在Python循环语句中,continue和break都可以用于控制循环的执行流程。
1. continue语句:continue语句用于跳过当前循环中余下的代码,直接开始下一次循环。如果循环体中遇到了continue,它将立即终止本次循环,执行下一次循环,并跳过continue后面的所有代码。
例如:
for i in range(10):
if i == 5:
continue
print(i)
上述代码将会输出0到4以及6到9这些数字,而5会被跳过,因为在i=5时,执行了continue语句,代码立即跳过5这个数字的输出,开始执行下一次循环。
2. break语句:break语句用于终止循环,跳出循环体。如果循环体中遇到了break,它将立即终止本次循环及余下的所有循环,并开始执行break语句之后的任何代码。
例如:
for i in range(10):
if i == 5:
break
print(i)
上述代码将会输出0到4这些数字,因为在`i=5`时,执行了break语句,立即终止了整个循环,跳出循环体。
需要注意的是,continue和break语句只能用在循环语句中,无法用在其他类型的语句(如if语句、函数等)中。同时,在使用continue和break时,需要谨慎地考虑代码逻辑与循环结构,避免出现无限循环或跳过重要操作的问题。
昨晚学习时看到一个比较有意思的案例:有一栋楼,有5层高,每层楼有8个房间,包租公每天都要去巡楼,从1楼到5楼每个房间都进去看看。有一天,巡查到3楼时,被过道上乱堆的杂物挡住了去路,只好去4楼接着巡查。
for i in range(1,6):
print(f"欢迎来到{i}楼)
if i == 3:
continue
for j in range(1,9):
print(f"欢迎来到{i} 0 {j}室)
结果刚巡查完404后,不小心坠楼了……
for i in range(1,6):
print(f"欢迎来到{i}楼)
if i == 3:
continue
for j in range(1,9):
print(f"欢迎来到{i} 0 {j})
if i == 4 and j == 4:
break
如果break是这样写,会发现404巡查完后,还会继续巡查5楼,难道是包租公诈尸了?这是因为break只是断开了第二个循环,并没有断开第一个循环,那该怎么办呢?
a = 11111
for i in range(1,6):
print(f"欢迎来到{i}楼")
if i == 3:
continue
for j in range(1,9):
print(f"{i} 0 {j}")
if i == 4 and j == 4:
a = 1234567
if a != 11111:
break
这样写就没有问题了,通过传递一个信号来断开整个循环,巡查完404终止了巡查。