循环中的continue与break语句
前言
一、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( break在for循环中的应用) for name in names: if not name.startswith(B): break;#遇到列表元素不以B开头就终止for循环 print(name) print( continue在for循环中的应用) for name in names: if name.startswith(B): continue;#遇到列表元素不是B开头终止本次循环,进行下一次循环 print(name,end=) print( 嵌套循环) 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()
输出结果: break在for循环中的应用 Bill continue在for循环中的应用 MikeMarry 嵌套循环 12345 BillMikeMarry
输出结果:
总结
主要介绍在循环体中如何跳出循环,两个语句,break语句以及continue