Python程序设计教程(第2版)
上QQ阅读APP看书,第一时间看更新

3.2.3 break语句和continue语句

break语句可以用在while和for循环中。在循环进行过程中,如果某个条件被满足(一般通过if语句判断是否满足执行break语句的条件),则可以通过break语句立即终止本层循环。如果break语句在具有两层循环嵌套的内层循环中,则只终止内层循环,进入到外层循环的下一条语句继续执行。

【例3-9】 求一个自然数除了自身以外的最大约数。

分析:一个整数除了自身以外的最大因子不会超过其除以2的整数商。这样程序可以将其除以2后的整数商作为循环控制变量的初始值。利用循环控制变量去除要判断的整数,找到第一个可以整除该整数的循环控制变量即为最大约数,不需要继续往下判断了,用break语句提前终止该循环;否则让循环控制变量减1,继续循环去判断是否已经找到一个约数。

程序代码:

程序运行结果:

程序的执行过程:

进入循环体:

输出:

continue语句可以用在while和for循环中。在循环体执行过程中,如果遇到continue语句,程序会跳过本次循环的循环体剩余语句,回到循环开始的地方重新判断是否进入下一次循环。

break语句与continue语句的主要区别如下。

(1)break语句一旦被执行,则整个当前循环将被终止。

(2)continue语句的执行不会终止整个当前循环,只是提前结束本次循环,跳过循环体中本次循环的剩余语句,提前进入到下一次循环。

【例3-10】 阅读以下两个程序,理解break语句和continue语句的区别。

程序代码:

程序运行结果:

程序代码:

程序运行结果:

第一种情况下,if语句里面是break语句。当触发了条件(即取到的字符串是'Null')则执行break语句,直接终止了循环,因此只输出了两个姓名Mike和Tom。

第二种情况下,if语句里面是continue语句。当触发了条件(即取到的字符串是'Null')则执行continue语句,只终止了当次循环,提前进入到下一次循环(即取得下一个字符串),因此输出了所有不是Null的姓名Mike、Tom、Apple、Betty、Amy、Dick。