Python详细对比讲解break和continue区别
作者:A 发布时间:2022-08-09 08:45:05
前言
最近在回答问答python区的问题的时候,发现很多人对于这个break和continue分不清。所以,今天我就写篇文章来讲一下(绝对不是为了方便我以后回答的时候复制)
break
在while和for循环中,只要满足一定的条件,程序就会结束,或者进入无限循环的境地。这个时候,我们就需要一个东西来帮助我们在满足某种条件的情况下,主动结束循环。或者说,我们希望有一个东西,能在循环的过程中的某个特定的阶段跳出,结束循环。
break长和if,elif,else搭配。
break的用法很简单,就像它定义所说的,就是跳出循环。但是,有几个需要注意的点:
1. break只跳出一层循环:for-for嵌套遍历的情况的话,一个break只会跳出一个循环。如果这个break是在最里面的话,就只会结束里面for的循环,进入下一个外面for的循环。
2. break跳出是绝对跳出,这个跳出的循环不会再继续循环了(除非是循环嵌套)。
3. break在while-else,for-else循环的时候会起到不一样的效果。
a = 0
while(a<10):
print(a)
if a == 8:
break
a+=1
else:
print("ok")
result:
0
1
2
3
4
5
6
7
8
a = 0
while(a<10):
print(a)
a+=1
else:
print("ok")
result:
0
1
2
3
4
5
6
7
8
9
ok
例子
题目来源:牛客网编程NP9报数游戏
牛牛在和朋友玩报数游戏,他和朋友们围成一圈,共有n个人,牛牛最初站在第m个位置。从第一个人开始报数,但凡报到3的倍数或者含三的数的人就退出圈子。请问牛牛是第几个退出圈子的人?
输入描述:
第一行输入n,n>2
第二行输入m,m<n
输出描述:
输出一个整数表示每次有人退出时那个人的编号
输出一个整数表示牛牛是第几个退出圈子的人
思路:
while-for嵌套,确保这个会无限进行,然后加上两个break,一个是在牛牛是最后一个人的时候break,另一个是牛牛成为退出的人的时候break
代码:
a = int(input())
b = int(input())
ls = [i for i in range(1,a+1)]
c = []
flag = True
cout = 0
num = 0
while True:
for i in range(1,len(ls)+1):
num += 1
if num % 3 == 0 or "3" in str(num):
print("编号为{}的淘汰了".format(ls[i-1]))
c.append(ls[i-1])
cout += 1
if ls[i-1] == b:
print("第{}个".format(cout))
flag = False
break
ls = [i for i in range(1,a+1) if i not in c]
if not flag:
break
continue
continue会跳过(忽略)当次循环的剩下语句,接着开始下一次循环。多数和if一起使用,少数会出现在别的情况。
尽管continue会在if里面出现,但是一旦运行了continue,if外面的也会被跳过。
for i in range(1,3):
if i % 2 == 0:
continue
print(i)
result:
1
例子
题目来源:牛客网编程NP17前十个偶数
通过给函数 range()指定三个参数来创建一个列表my_list,其中包含 [1,10000] 中的所有奇数;再使用一个 for 循环将这些中是质数数字都打印出来(每个数字独占一行)。
思路:
先 range和迭代器一起生成一个list,然后continue搭配if判断,输出。
代码:
ls = [i for i in range(2,10001)]
for i in ls:
notprime = False
for j in range(2,i):
if i % j != 0:
continue
notprime = True
break
if i == 2:
notprime = True
if not notprime:
print(i)
对比
相同:
1. break 和 continue 都有着结束当前这次循环的作用
2. break 和 continue 都经常和if 搭配使用
3. break 和 continue 是单独的语句,不需要参数,也不能放在判断语句中
不同:
1. break 是跳出循环,不继续下次循环;continue是结束当前这次循环,但是还继续下次循环
2. break 对 for else 和 while else 有特殊的作用,continue没有
3. break 应用的要比continue广,多数情况下用 break 而不是 continue
来源:https://blog.csdn.net/weixin_56177871/article/details/125205639


猜你喜欢
- 在Oracle SQL的where子句中传入字符类型参数'19-11月-08',使得可以直接和日期类型比较,或者转换一下同日
- 一.图像灰度线性变换原理图像的灰度线性变换是通过建立灰度映射来调整原始图像的灰度,从而改善图像的质量,凸显图像的细节,提高图像的对比度。灰度
- 一、数据地址实体抽取的目的及问题对数据的地址进行实体识别,主要作用是确定我们的数据主体最终可以归到哪一行政单位,从而在各行政单位上对数据主体
- 这篇文章主要介绍了如何基于Python制作有道翻译小工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 级联查询在ORACLE 数据库中有一种方法可以实现级联查询select * //要查询的字段from table
- 主要就是了解一下pytorch中的使用layernorm这种归一化之后的数据变化,以及数据使用relu,prelu,leakyrelu之后的
- 依赖项目基础配置使用 vue-cli 生成自适应方案核心: 阿里可伸缩布局方案 lib-flexiblepx转rem:px2rem,它有we
- 输入任意一个大写字母,生成金字塔图形def GoldTa(input): L = [chr(i) for i in range(
- 本文实例讲述了Python面向对象之静态属性、类方法与静态方法。分享给大家供大家参考,具体如下:1. 静态属性:在函数前加@property
- 在python中,我们定义好一个字符串,如下所示。在python中定义个字符串然后把它赋值给一个变量。我们可以通过下标访问单个的字符,跟所有
- 1 九九乘法表for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j
- redux-saga在学习它之前先了解es6生成器生成器关键字:yield next()定义函数需要在函数名前急+*号function *t
- 今天,老师带偶们复习了一下数据库中的分页,总体来说,今天感觉还不错,因为以前学的还没忘。好了,进入正题,首先,说说top的方法top方法其实
- 场景: 最近一台DB服务器偶尔出现CPU报警,我的邮件报警阈(请读yù)值设置的是15%,开始时没当回事,以为是有什么统计类的查询,后来越来
- 方法在 Golang 中没有类,不过我们可以为结构体定义方法。我们看一个例子:package main import ( 
- python的hashlib库中提供的hexdigest返回长度32的字符串。直接通过digest返回的16字节,有不可打印字符。问题来了,
- 1. 参数解析1.1 inplace参数取值:True、FalseTrue:直接修改原对象False:创建一个副本,修改副本,原对象不变(缺
- 本文深入分析了Python面向对象程序设计OOP。分享给大家供大家参考,具体如下:下面是一个关于OOP的实例,模块文件为person.py#
- 农历新年将至,支付宝红包打了一仗,微信在朋友圈屏蔽了它的分享,但单防守还不行,进攻才是最好的防守。昨日,微信支付现金红包接口正式开放,只需开
- 本文实例讲述了Go语言模拟while语句实现无限循环的方法。分享给大家供大家参考。具体实现方法如下:这段代码把for语句当成C语言里的whi