Logo

郎哥编程

退出循环语句

2020-03-15 276

前面学习了for循环结构和while循环结构。下面提出两个问题:(1)在for和while循环结构中,当循环条件满足时,就会一直循环,如果想中途退出循环,该怎么办?(2)如果想停止本次循环,而不终止整个循环,该怎么办? 

01.png

上面的问题,我们一个个来解答。先说第一个问题,在循环结构中,如果想中途退出循环该怎么办?

02.png

Python提供了break语句可以在循环体内退出循环结构,直接执行循环结构后面的语句。使用break语句时,一般会设置触发条件,当设置的条件满足时,执行break语句退出循环结构。

03.png

上图红色虚线框内是循环体,在循环体内有退出循环条件判断,如果满足退出循环条件,就执行break语句,否则执行后续循环体内的语句。

04.png

用程序求一个小于该数的最大约数,可以使用循环结构从大到小顺序计算所有可能的约数(不包括该数自身),第一个能整除该数的数就是小于该数的最大约数。
约数也称为因数。整数a如果能被整数b整除,那么,整数b就是整数a的约数。一个整数的约数可能有多个,最小的约数是数值1,最大的约数是整数自身。

05.png

根据程序分析,阿萌绘制了流程图:

06.png

程序一开始要求用户输入num,然后把num减去1赋值给count变量(求小于num的最大约数),用count作为循环变量,顺序计算所有可能的约数,在约数的计算过程中,用num与count做取余操作,如果操作结果为0,则说明count是num的约数,且是小于num的最大约数,后面用break语句就可以直接退出循环了。

07.png

再来回答第二个问题,如果想停止本次循环,而不终止整个循环,该怎么办?

Python语言提供了continue语句用于结束本次循环,并开始下一轮循环。continue语句只能用在循环里,当循环执行到continue语句时,程序会终止本次循环,并忽略剩余的语句,开始新一轮循环。

08.png

使用continue语句时,要注意和break语句的差别,break语句导致循环终止,使程序控制流转向这个循环结构之后的语句块;而continue引起的则是循环内部的一次控制转移,使程序控制流跳到循环体的最后,相当于跳过循环体里这个语句后面的那些语句,继续下一次循环,下图说明了break语句和continue语句引起的控制转移的情况。

09.png从上图可以看出:break语句是程序控制跳出整个循环,并执行循环后面的语句;continue语句是结束本次循环,循环体中continue后面的语句不再执行,而是开始下一轮循环。

10.png

用程序求100以内个位数不为3的整数累加和,可以使用循环结构从1到100累计求和,在循环求和过程中加一个判断,如果该数个位是3就跳过不加。判断100以内整数的个位数是否为3,可以使用取余运算符,将一个正整数,除以10以后余数是3,就说明这个数的个位为3。
根据程序分析,阿萌绘制了流程图:

11.png

程序一开始先初始化变量i和sum,i为循环变量并初始化为0,sum为存储累加和的变量并初始化为0。然后使用循环语句依次求循环变量i的累加和,循环条件为i的值小于100。在循环结构中,如果i与10的取余结果等于3,说明i的个位数为3,执行continue语句跳过循环体求和的语句,开始下一轮循环。

12.png

上边的代码分别将变量i和sum赋值为0,然后使用while循环结构。

循环条件是i小于100,在循环体中判断i与10的取余结果,如果取余结果等于3,说明i的个位数为3,在这种情况下,先执行i加1操作(修改循环变量),然后执行continue语句,跳过循环体剩余的语句,进入下一轮循环。
循环体的if语句后面有两条语句,分别是sum与i相加的和赋值给sum,i做加1操作。循环结束后,使用print函数输出sum变量的值。


课程小结
在for和while循环语句中,当循环条件满足时,就会一直循环,如果想中途退出循环,可以使用break语句来退出循环;如果想停止本次循环,而不终止整个循环,可以使用continue语句结束本次循环,开始下一轮循环。


上机练习
编写一个程序,输出100以内的整数,要求输出的整数不包括3、5以及3和5的倍数。提示:可以利用取余运算符“%”,判断一个整数是否是3和5的倍数。可以使用for循环来输出100以内的整数,设置循环变量为待输出的整数,如果循环变量等于3或5,或者是3和5的倍数,使用continue语句结束本次循环,开始下一轮循环,不执行输出整数的语句。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论