目录
break和continue都属于循环控制语句,break语句是结束整个循环过程,而continue语句只结束本次循环进入下一个循环,而不是终止整个循环的执行,下面我们分别看下具体使用场景。
1、break循环控制语句
利用break语句可以实现高效率的循环查找过程,比如用while循环和for循环刚开始的几次操作就已经拿到了我想要的值,就可以使用break语句结束整个循环,避免过度循环次数的发生,从而提高处理效率。
首先看下没有break的情况:
Atom = ("Atom","Atom1","Atom1") #定义一个元组 Atom
for i in Atom: #给一个变量 i ,然后遍历元组Atom
if i == "Atom1": #判断,如果i的值是 “Atom1” 则往下继续执行
print(i) #输出 i 的值
print("NO") #输出字符串“NO”
输出的值为:Atom1
NO
Atom1
NO
因为元组Atom中有两个 Atom1,for循环会遍历元组里的所有值,所以会输出两个Atom1和两个字符串"NO",那如果我们想只要是得到了Atom1,就不用再去执行for循环遍历了,这时候就可以使用break
Atom = ("Atom","Atom1","Atom1") #定义一个元组 Atom
for i in Atom: #给一个变量 i ,然后遍历元组Atom
if i == "Atom1": #判断,如果i的值是 “Atom1” 则往下继续执行
print(i) #输出 i 的值
break #跳出break循环
print("NO") #加这句话是为了更方便的看到代码执行,因为上面已经break结束了for循环,所以不会走到这行子代码中
输出结果为:Atom1
执行过程:
第一次循环:从列表中读取到 Atom ,把Atom赋值给变量 i ,然后进入到子代码中,此时 i 的值为 Atom,然后进行判断 i 的值不等于 Atom1,然后结束本次for循环,判断列表中还有其他值,开始第二次循环
第二次循环:从列表中读取到 Atom1 ,把Atom1赋值给变量 i ,然后进入到子代码中,此时 i 的值为 Atom1,然后进行判断 i 的值等于 Atom1,这时候进入到if的子代码中,打印出i的值,然后走到了break,这时候 break就起到作用了,直接跳出for循环,结束掉for循环的后续工作,不用再去判断列表里还有没有没有遍历到的其他元素。所以不会再去执行下面的子代码了,print("NO")就没有执行了
如果没有break我需要遍历3遍才能遍历完,但是有了break,我拿到想要的结果后,只需要2次就可以了,提高了运行效率。
2、continue循环控制语句
continue是循环语句中另外一种控制循环方向的语句,当满足指定条件时,忽略continue后面的子代码行,使循环回到开始处,继续进行新的循环。通过continue,可以减少子代码的运算。
还是先看一个没有continue的代码:
Atom = ("Atom","Atom1","Atom1") #定义一个元组 Atom
for i in Atom: #给一个变量 i ,然后遍历元组Atom
if i == "Atom1": #判断,如果i的值是 “Atom1” 则往下继续执行
print(i) #输出 i 的值
print("NO") #加这句话是为了更方便的看到代码执行,因为已经走到了break语句,所以直接跳出了for循环,所以走不到这行子代码
输出的结果为:Atom1
NO
Atom1
NO
因为执行遍历得到了两个Atom1,一共if判断通过两次,所以就打印出了两次Atom1和NO,那如果我们想只打印i的值不打印NO应该怎么办?
这时候我们就可以使用continue了,也有人说 直接把print("NO")这行代码去掉不也行吗,也可以直接去掉print("NO"),为了方便理解我就加上了这行代码,我们在实际编程中continue语句使用的也是比较少。
使用continue语句:
Atom = ("Atom","Atom1","Atom1") #定义一个元组 Atom
for i in Atom: #给一个变量 i ,然后遍历元组Atom
if i == "Atom1": #判断,如果i的值是 “Atom1” 则往下继续执行
print(i) #输出 i 的值
continue #结束本次子代码的运算,开始下一次for循环
print("NO") #加这句话是为了更方便的看到代码执行,因为上面已经continue结束了本次子代码的运算,所以走不到该行子代码
输出结果为:Atom1
Atom1
执行过程:
第一次循环:从列表中读取到 Atom ,把Atom赋值给变量 i ,然后进入到子代码中,此时 i 的值为 Atom,然后进行判断 i 的值不等于 Atom1,然后结束本次for循环,判断列表中还有其他值,开始第二次循环
第二次循环:从列表中读取到 Atom1 ,把Atom赋值给变量 i ,然后进入到子代码中,此时 i 的值为 Atom,然后进行判断 i 的值等于 Atom1,然后进入到if的子代码中,首先打印出i的值为Atom1,然后执行到continue,这时候continue就起到作用了,结束本次子代码的运算,不去执行下面的子代码也就是print("NO")这行,然后判断元组Atom里还有值,直接开始第三次循环
第三次循环:从列表中读取到 Atom1 ,把Atom赋值给变量 i ,然后进入到子代码中,此时 i 的值为 Atom,然后进行判断 i 的值等于 Atom1,然后进入到if的子代码中,首先打印出i的值为Atom1,然后执行到continue,这时候continue就起到作用了,结束本次子代码的运算,不去执行下面的子代码也就是print("NO")这行,然后判断元组Atom里没有值了,结束本次for循环
通过上面的例子就能比较直观的了解break和continue的区别了,一个是结束所有的循环,一个是结束本次循环。
到现在为止,3.X条件分支与循环相关的基本知识已经整理完啦,有问题可以留言或者私信沟通。
下图为公众号二维码,内容会同步发出,大家可以关注一起学习
这个是张狗子小哥哥的公众号,会分享一些平时的工作心得,可以关注看下。