4.3.3 循环保留字:break和continue

4.3.3 循环保留字:break和continue

循环结构在条件满足时可一直执行,但是在一些特殊的情况下,程序需要终止循环,跳出循环结构。例如玩游戏,在游戏正在运行时,按下Esc键,将终止程序主循环,结束游戏。

Python提供了两个保留字(break和continue),用它们来辅助控制循环的执行。

1.break

break跳出它所属的循环结构,脱离循环后程序从循环代码后继续执行。该语句通常与if结构结合使用。语法格式如下:

break流程图如图4-9所示。

图4-9 break流程图

在这种结构中,当满足循环条件时,执行<语句块1>的内容,若不满足<判断条件>,执行<语句块2>的内容,如此往复。当满足循环条件,同时也满足<判断条件>时,则执行完<判断条件>后就从循环中退出,即终止循环。

示例代码:

这段代码在字符串中遍历,从字符串“Python”中逐一取出字符进行输出,当取出的字符为“t”时,满足判断条件,则会从循环中跳出,故输出结果为:

2.continue

continue与break的区别在于,continue结束本次循环,继续下一轮循环判断,而不是终止整个循环的执行;break语句则会结束整个循环过程,不再执行循环条件的判断。

continue同样与if语句结合使用,语法格式如下:

continue流程图如图4-10所示。

图4-10 continue流程图

在这种结构中,当满足循环条件时,执行<语句块1>的内容,若不满足<判断条件>,执行<语句块2>的内容,如此往复。当满足循环条件,同时也满足<判断条件>时,则执行完<判断条件>后回到循环,本次循环跳过<语句块2>。

使用continue修改上面的代码:

这段代码在字符串中遍历,从字符串“Python”中逐一取出字符进行输出,当取出的字符为“t”时,满足判断条件,则会跳过判断条件后面的语句“print(c,end='')”,继续下轮循环的判断,故字符“t”不会被输出。运行结果为:

【案例4-10】 统计个数。

编写程序统计每种不同的个位数字出现的次数。例如,给定N=100311,则有2个“0”、3个“1”和1个“3”。

输入格式:每个输入都包含1个测试用例,即一个不超过1000位的正整数N。

输出格式:对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。

输入样例:

100311

输出样例:

0:2

1:3

3:1

案例分析:

【案例4-11】 用穷举法计算两个数字的最大公约数和最小公倍数。

案例分析:

用穷举法来求最大公约数,则可以从两数中小的那个数字开始进行遍历,一直到1为止。如果遍历过程中发现某个数字能同时被两数整除,那么这个数字即最大公约数。实现代码如下: