目录
导入
break
具体用法
在for循环中的运用
在while循环中的运用
continue
具体用法
区别
总结
导入
前几天的博文里,我们学习了for循环和while循环。
无论是for循环还是while循环,默认的终止条件都是边界条件。在触发边界条件之前,代码会一直循环执行。
那有没有可以改变这种“默认循环执行”的方法呢?答案是肯定的。接下来我们一起学习两个关键字:break、continue。
break
某些场景里,需要在特定的条件出现时强行终止循环,并执行循环之后的代码。
这时候,就可以使用 break 这个关键字来完成。
定义:break用于跳出当前循环语句的执行。
隐喻 :原计划在操场跑10圈,但当跑到第2圈的时候,突然被班主任叫走,于是果断停止跑步并前往办公室。
具体用法
在for循环中的运用
break语句既可以用在for循环中也可以用在while循环中。它一般和if语句搭配在一起使用,表示如果满足了某种特定条件,就直接终止当前的循环结构。
接下来,我们来学习break的具体用法。
这六行代码遍历了一个列表numberList,并依次输出其中的元素。第2-5行是一个完整的for循环结构。如果列表中有大于15的元素,就终止循环结构。for循环外,输出了完整的numberList。
numberList = [10, 4, 1, 20, 6]
for i in numberList:
print(i)
if i > 15:
break
print(numberList)
遍历列表
使用for...in...的结构,依次遍历numberList中的元素。
输出元素
for循环内的代码块,依次输出列表中的元素。按理来说,列表一共有五个元素,print(i)会执行 5 次。但在本例中,print(i)只运行了 4 次,依次输出了列表中10、4、1和20这四个元素。稍后我们会详细解释这里只运行了四次的原因。
if语句
使用if语句判断变量i是否大于15。如果判断条件成立,就执行下面的缩进代码:break;
如果判断条件不成立,则进入下一次循环。
break
一个关键字break,执行它时将结束整个循环结构。本例中,在遍历到列表的第四个元素时,由于20大于15,判断条件成立,执行缩进代码break,程序跳出该循环。
因此,print(i)只执行了四次。
for循环外
执行break后,程序不会进入下一次循环继续遍历列表的第五个元素,而是从循环外的第一行开始执行:输出列表numberList。
在while循环中的运用
while循环里break的用法和在for循环中类似。示例中,n的初始值为0,我们使用while循环依次输出小于10的整型。
当n小于10时,输出n。第4-5行使用if语句判断了n是否等于5。如果n等于5,执行break,跳出整个while循环;如果n不等于5,则将n加一,继续进入下一次while循环。
因此,运行结果中依次输出了0、1、2、3、4和5。因为当n等于5时,就执行break,跳出整个循环了。
continue
我们刚刚学习了,即使在边界条件保持为True时,也可以通过使用break来终止整个循环结构。但是,如果只想跳过循环内某些语句,接着返回到循环的开头,继续进入下一次循环,该怎么办?
这时候,就需要用到另一个关键字:continue 。
定义:continue会“跳过”本次循环内的剩余代码。
隐喻:原计划在操场跑10圈,但是当跑到第2圈的时候,突然接到一个电话,停止了跑步。等挂断电话后,回到起点直接从第3圈继续跑。
具体用法
注意,continue是跳过本次循环,而break跳出整个循环结构。接下来,我们来学习continue的具体用法。
这5行代码遍历了一个列表drinks。第2-5行是一个完整的循环结构。在循环内,通过if语句判断该列表中是否有元素是"coke"。如果有,则跳过本次循环中的剩余代码,也就是第5行的print(item),直接进入到下一次循环。如果没有,就执行print(item),然后进入下一次循环,直到列表drinks中所有元素都被取完为止。
drinks = ["water", "coke", "tea", "milk"]
for item in drinks:
if item == "coke":
continue
print(item)
if语句
使用if语句判断item是否等于"coke"。如果等于,就执行continue语句;如果不等于,则执行print(item)。
continue
一个关键字continue,它会跳过本次循环中后面的剩余代码,直接进入下一次循环。本例中,在遍历到列表的第二个元素时,item是"coke",判断条件成立,执行缩进代码continue,程序跳出本次循环,进入下一次循环。
因此,print(item)没有输出coke。
while循环里continue的用法和在for循环中类似。示例中,n的初始值为0,我们使用while循环依次输出小于10,但不包含5的整型。
第4-5行使用if语句判断了n是否等于5。如果n等于5,执行continue,跳过当前的while循环,进入下一次while循环;如果不等于5,则将n输出。
因此,运行结果中依次输出了1-10里,除了5以外的所有整型。
有的大佬可能已经发现,continue是可以被if语句替代的,比如刚才的例子就有两种写法。
对比单纯地使用if语句,continue的优势在于它能加快程序的运行时间。
编程的世界是非常灵活的,大家在实际应用中可以根据自己的需要来进行选择。
区别
在博文的最后,我们再来通过两段代码来感受一下break和continue的区别~当执行break时,会跳出整个循环结构,并运行循环外的第一行代码。
执行continue时,会“跳过”本次循环内的剩余代码,返回到循环的开头,继续执行下一次循环。
总结
break直接终止整个循环结构;continue是跳过当前循环中剩下的代码,继续进入下一次循环。