python中循环结构break_Python编程10:跳出循环结构之break和continue

#少儿编程#

前面我已经向小朋友们介绍了Python语言的循环结构,它有for循环和while循环两种,其中while循环,是在满足某个条件时会一直循环。但有时我们也想能够中途离开循环,也就是在for循环结束计数之前,或者while循环条件为真之前,能退出循环。Python提供了两种方法:使用continue关键字和使用break关键字。

在使用这两个关键字之前,我们先来看一段很简单的代码(图1)。

a36d5351068af7ff23573c9801947270.png

红框里的这段代码使用了for循环,依次输出1到5。再次提醒,range(1,6)是取1到6之间的数,包括1,但不包括6。紫色框里是程序的运行结果。

下面我们通过在这段代码里添加continue或break来看这两个关键字的用法。

break:跳出循环

如果想完全跳出循环,可以使用break语句实现。我们在图1的代码里添加break语句,如图2:

a98a8c06c2df14c7cf1acdffd5a39589.png

红框里的代码是我们添加了break语句的代码,整段代码的意思就是i在1到6之前取值,如果i为3,就执行break语句,也就是跳出循环;如果不为3,就输出i的值,并且继续循环。

处的代码就是:当i为3的时候,执行break语句;

紫色框里是这段代码的输出结果,我们可以看到它只输出了1和2。因为当i=3时,程序执行break语句直接跳出这个循环体,没有执行到后面的print(i)语句,且因为已经跳出这个循环体了,所以i也不会继续在rang(1,6)中取值了。所以,它只打印了1和2。

注意:这里要提醒注意的是代码的缩进,我们知道Python的代码缩进体现了代码的逻辑。for循环下面的代码块缩进了一层,if语句下面的代码块又缩进了一层。如果你break语句没有缩进,和if平齐,那么Python解析时会认为这句break是属于for循环的,而不是if语句的代码块,那你这段代码执行起来就会出错。

continue:提前跳转

如果只是希望停止执行当前这次循环,提前跳到下一次循环,那就可以使用continue关键字。我们再在图1的代码里添加continue语句,如图3:

f21ad90d21fa47f64d44e5b66677f91a.png

红框里的代码是我们添加了continue语句的代码,整段代码的意思就是i在1到6之前取值,如果i为3,就执行continue语句,也就是停止执行这次循环,提前跳到下一次循环;如果不为3,就输出i的值,并且继续循环。

处的代码就是:当i为3的时候,执行continue语句;

紫色框里是这段代码的输出结果,我们可以看到它输出了1、2、4、5。因为当i=3时,程序执行continue语句停止执行这次循环,也就是没有执行后面的print(i)语句,提前跳到下一次循环i=4的时候,由于后面i都不等于3,所以不会触发continue这个语句,都能执行到print(i)语句。因此可以看到输出结果就是除了3没有打印出来,其它几个数字都打印出来了。

【练习】猜数字游戏

上一篇在讲while循环,小朋友们写了个猜数字的游戏,但是那个游戏的设计有点不好,就是如果没猜中就要一直猜。这次我们改写这个程序,要求程序在1~100之间取随机数作为神秘数字,玩家猜是什么数字。

1)如果没猜中:

猜大了就显示提示信息“你的数字大了,请重猜!”,并且让继续猜;

猜小了,就显示提示信息“你的数字小了,请重猜!”并且让继续猜;

如果猜了8次还没猜中,就停止游戏,显示提示信息“你猜的次数超过8次,停止游戏。”

2)如果猜中了,就结束游戏。

代码如图4,对于这段程序,我主要讲一下新增加的代码:

74b199044a4dbac12b3721829d3ec425.png

这段代码和上一篇的猜数字代码相比,多了一个count变量,这个变量是用来累计猜测次数的,如果次数大于8,就停止游戏。

当count=1,也就是说第一次猜数字,将输入的数字赋值给变量yournumber(图5)。

f1d359d67b5233fee55b909ebb0d3617.png

这次我们用到了while……else……语句(图6)。之前我们只用过while语句,就是当满足规定的条件就执行代码块,不满足就退出循环,然后执行后面的代码。这次while……else……语句,就是当满足规定的条件,就执行while下面的代码块,不满足规定的条件就执行else下面的代码块。

ae3ac6066d9a5a6c1d1e581aa1af27bb.png

在这个段代码里,如果玩家猜的数字不等于随机产生的神秘数字(yournumber != secretnumber),那就执行下面的代码继续猜;否则就是猜中了,那就打印“恭喜你,猜中了!”那句话。

11行到27行是对猜测次数的判断,如果猜测次数小于等于8(count <=8),就继续猜,否则的话就打印“你已猜了多少次,游戏结束”,并且使用break语句退出循环,如图7。

a0fb26af1138fdde0738bfcabf9c061b.png

注意:

程序看到这里,小朋友就能明白为什么我们要用while……else……语句,而不就用while语句了。

使用break语句退出循环体后,会继续执行后面的语句。如果我们只用while语句,把print(“恭喜你,猜中了”)这句放在while循环体外,那在执行break语句跳出循环体后,就会执行print(“恭喜你,猜中了”)这句。那这样执行的结果就会很奇怪,明明是因为猜了超过8次都没猜中,怎么还来一句“恭喜猜中了”呢?所以,这里我们使用了while……else……语句,把print(“恭喜你,猜中了”)放在else下面的代码段里,这样,当执行break语句跳出while循环后,就不会执行那句print(“恭喜你,猜中了”)了。

如果猜测次数没超过8次(count<=8),就继续猜。count = count+1,是累积猜测次数,每循环一次,变量count的值就加1,直到超过8,执行else下面的语句,如图8。

d4652a8834a1fc81132082d8257cee40.png

代码执行的结果如图9:

b6fd76050c9614a615414fb245e8b97e.png

其实这段程序设计的还是不全面,比如如果有的小朋友比较调皮,他在用键盘输入数字时敲了字母键,那这个程序是会报错的。不过考虑到小朋友们都是初次接触代码级的编程语言,我们现在就先不考虑那么全面,等以后再弥补。

到这一篇,我们把程序设计里的两个非常重要的结构:分支结构和循环结构介绍完了。在中国电子学会举办的全国青少年软件编程Python等级考试的一级考纲里,有要求掌握turtle库,这是一个画画的库,从下一篇起,我们就一起来看看这个库。

原创不易,请勿抄袭。欢迎大家关注我,和我多交流,如果你喜欢,请转赞评三连,谢谢。

想了解更多精彩内容,快来关注和小po一起学编程

### 回答1: Python循环结构breakcontinue的区别是: - break语句用于终止整个循环,一旦break语句被执行,循环将立即停止,不再执行剩余的循环语句,并跳出循环。 - continue语句用于跳过本次循环,一旦continue语句被执行,循环将会跳过本次循环剩余的语句,并开始下一次循环。 需要注意的是,breakcontinue只能在循环语句使用,而不能在其他语句使用。 ### 回答2: 在Python循环结构breakcontinue都用于控制循环的执行流程,但它们的作用有所不同。 break用于立即终止当前的循环,并跳出循环体。当在循环内部遇到break语句时,循环会立即终止,程序会跳出整个循环体,继续执行循环后的代码。因此,break通常用于在满足某个条件时,提前结束循环。 例如: ```python for i in range(1, 10): if i == 5: break print(i) ``` 上述代码,当i的值等于5时,break语句被执行,循环立即终止,输出结果为1、2、3、4。 而continue语句则用于结束当前一次循环,进入下一次循环的开始处。当在循环内部遇到continue语句时,程序会跳过当前循环剩余的代码,直接进入下一次循环的执行。因此,continue通常用于跳过某些不满足条件的迭代。 例如: ```python for i in range(1, 5): if i == 3: continue print(i) ``` 上述代码,当i的值等于3时,continue语句被执行,直接进入下一次循环。因此,输出结果为1、2、4。 综上所述,break用于立即终止整个循环跳出循环体,而continue用于结束当前一次循环,直接进入下一次循环的执行。 ### 回答3: 在Python循环结构,`break`和`continue`是用来控制循环的关键字,它们的作用和用法有一些不同。 `break`关键字用于立即终止当前的循环,不再执行循环之后的代码。当某个条件满足时,使用`break`可以跳出循环,不再继续执行下面的循环语句。例如,在一个`for`或`while`循环,当某个元素或条件满足后,可以使用`break`来提前终止循环。这样可以节省了不必要的循环和计算。 `continue`关键字用于跳过当前循环剩余的代码,直接进入下一次循环。当某个条件满足时,使用`continue`可以跳过该轮循环剩余的代码,直接进入下一轮循环。`continue`的作用是跳过某些特定情况下不必要的代码,以提高程序的执行效率。 总结起来,`break`用于终止整个循环并退出,而`continue`用于结束当前循环的迭代,进入下一次循环。`break`是跳出循环的关键字,而`continue`是跳过循环的关键字。它们的作用不同,但都可以用来改变循环的控制流程,根据具体情况选择使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值