python跳出循环_Python的循环退出、循环继续和通过语句

在for和while循环语句中,当循环条件满足时,就会一直循环,如果想中途退出循环,该怎么办?如果想停止本次循环,而不终止整个循环,该怎么办?如果我想写个不执行任何操作的语句,该怎么写?

1、退出循环的break语句

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

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

例1:试求给定某一数值的最大公约数。

用程序求一个数的最大公约数,可以使用循环语句从大到小迭代所有可能的约数,第一个能整除该数的约数就是这个数的最大公约数。程序流程图如下:

u=4070808037,242399980&fm=173&app=49&f=JPEG?w=532&h=551&s=58883C72490F654F0C75F1CA0000E0B1图1 求最大公约数流程图

程序一开始要求用户输入num,然后把num除以2的结果赋值给count变量(一个数的最大公约数一定小于该数的一半),作为num的初始约数。再用count作为循环变量,迭代所有可能的约数,在约数的迭代过程中,用num与count做取余操作,如果操作结果为0,则说明count是num的公约数,且是最大公约数,后面用break语句就可以直接退出循环了。下面给出例1的程序代码。

u=524793830,2054759861&fm=173&app=49&f=JPEG?w=640&h=127&s=4E40F81A4F624D200EF435DB000050B2

上边的代码用于求给定num的最大公约数,使用循环迭代所有可能的约数,循环变量count依次递减,第一个能整除num的count就是要找的最大公约数,找到后就不用再找了,使用break语句退出循环。

2、不执行本次循环的continue语句

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

Python语言提供了continue语句用于结束本次循环,并开始下一轮循环。continue语句只能用在循环里,当循环执行到continue语句时,程序会终止本次循环,并忽略剩余的语句,开始新一轮循环。使用continue语句时,要注意和break语句的差别,break语句导致循环终止,使程序控制流转向这个循环语句之后;而continue引起的则是循环内部的一次控制转移,使执行控制跳到循环体的最后,相当于跳过循环体里这个语句后面的那些语句,继续下一次循环,下图说明了break语句和continue语句引起的控制转移的情况。

u=3249803374,4036404466&fm=173&app=49&f=JPEG?w=480&h=251&s=7AAC3C62AF924C4B0E55F0CE0000E0B1图2 break语句和continue语句的区别

例2:试求100以内个位数不为3的整数累加值。

用程序求100以内个位数不为3的整数累加值,可以使用循环语句从1到100累计求和,在循环求和过程中加一个判断,如果该数个位是3就跳过不加。判断100以内整数的个位数是否为3,可以使用取余运算符,将一个正整数,除以10以后余数是3,就说明这个数的个位为3。程序流程图如下:

u=4107654945,2360477956&fm=173&app=49&f=JPEG?w=554&h=442&s=58883472190BE54F0875F1CA0000E0B1图 3 求100以内个数不为3的整数累加值

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

u=2127229014,3330807968&fm=173&app=49&f=JPEG?w=640&h=146&s=27F4EC324B236724587DA1DA000080B3

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

3、不执行任何操作的空语句

再来回答第三个问题,如果我想写不执行任何操作的空语句,该怎么写?

在回答问题之前,先来讨论一下另一个问题,不执行任何操作的空语句在编程中有意义吗?我们在编程程序的过程中,可能需要先把代码的结构确定下来,确定好循环语句、条件语句等代码块,然后再逐步把代码补充到代码块中,例如下面的代码块:

u=3424505744,1988880508&fm=173&app=49&f=JPEG?w=640&h=59

在处理Python字符串中,我们可能对会对字母h非常感兴趣,希望在处理到字母h时做些事情,但还没有想到怎么处理,暂时无法写处理代码,但在需要写语句的地方不写任何语句,解释器就会提示语法错误,因此需要一个不执行任何操作的语句来占位。

在这样的情况下,可以使用Python语言提供的pass语句,它不做任何事情,只是起到一个占位的作用,以后可以将代码补充上。

u=4201533107,3325232778&fm=173&app=49&f=JPEG?w=640&h=61

pass语句在开发程序非常有用,因为在编写代码的过程中,往往需要先把程序结构确定下来,然后再补充细节,完善代码。这时在空语句的地方用pass占位就是一个非常好的做法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值