循环中的continue与break语句


前言

回顾上一篇文章中学到的循环我们知道,循环主要做的一件事情利用机器强大的执行能力,重复的执行一段代码。主要学习了for循环和while循环,其中我们知道for循环对于迭代集合是非常方便的。回顾一下我们的while循环的结构,在while循环中,主要是通过while循环后的条件表达式的值确定是否结束循环的,不过在很多时候,需要在循环内部之间跳出循环,你可以理解为你已经找到你想要的值了,不想再浪费时间进行下面的循环了。这就是今天的主要内容,如何跳出循环?


一、break语句

首先先看一个代码块儿

x=0
while x<100:
	if x==5:
		break;
	print(x)
	x+=1

如果执行上述代码会得到什么结果呢?

输出结果:
0
1
2
3
4

接下来分析这个代码块儿,在上面的代码中,while循环中的条件语句时x<100,而初值变量是0,因此,如果在while循环中,每次对初值加1,那么while循环会循环100次,不过在while循环中进行了if语句条件判断,当x的值等于5时执行了break语句,跳出了循环,所以循环只会执行6次(从0到5),当执行到最后一次时,执行了break语句推出了循环,而后面的语句都不会调用,所以这段循环只会输出0到4共5个数字。


break语句的作用:通过上面的例子,能够看出,break主要做的一件事就是终止循环,如果一旦执行了break语句,那么无论循环到什么地方,整个循环体就终止了,当我在读一个代码块儿时,发现了Break,我会首先找整个循环体有多大,毕竟等会儿我就不用读这该死的循环了!!!


二、continue语句

与break语句相对应的还有一个continue语句,与break语句不同的是,continue语句是用来终止本次循环的,而break是用来跳出整个循环的。continue终止本次循环后会立刻开始执行下一次循环。

x=0
while x<3:
	if x==1:
		conyinue;
	print(x)
	x+=1

这个输出结果是比较有意思的

输出结果:
0

在上面的代码中,由于执行了continue语句,因此if语句后面的所有语句都不会执行了,while循环会继续执行下一次循环,但是值得注意的是,当执行这段代码时会进入死循环了,所谓的死循环是指while语句后面的条件永远为TRUE,也就是永远都不会结束。这可能是很多人写循环时容易犯的一个错误。


现在重新看一下这个代码,如果想要往while循环正常结束,x必须大于或等于3,但是当执行了continue语句后if后面的所有语句在本次循环中都不会执行,循环体的最后一条语句是x+=1,这条语句用于每次循环中将x的值加1,但本次循环中没有加1 ,所以此时x的值还是1,也就是说if条件永远满足,因此continue语句永远都会执行。解决的方法也是显而易见的。

x=0
while x<3:
	if x==1:
		x+=1
		conyinue;
	print(x)
	x+=1

总三:嵌套循环中的break和continue

break语句和continue语句同样支持for循环,而且支持嵌套循环,不过要注意的是,如果在嵌套循环中使用了break语句,那么只能退出当前层的循环,不能退出最外层的循环。

names=['Bill','Mike','Marry']
print('\nbreak在for循环中的应用')
for name in names:
	if not name.startswith('B'):
		break;#遇到列表元素不以B开头就终止for循环
	print(name)

print('\ncontinue在for循环中的应用')
for name in names:
	if name.startswith('B'):
		continue;#遇到列表元素不是B开头终止本次循环,进行下一次循环
	print(name,end='')

print('\n嵌套循环')
arr1=[1,2,3,4,5]
arr2=['Bill','Mike','Marry']
arr=[arr1,arr2]
i=0
while i<len(arr):
	for value in arr[i]:
		print(value,end='')
	i+=1
	print()
输出结果:
breakfor循环中的应用
Bill

continuefor循环中的应用
MikeMarry
嵌套循环
12345
BillMikeMarry

输出结果:
在这里插入图片描述


总结

主要介绍在循环体中如何跳出循环,两个语句,break语句以及continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值