引入
在循环的过程中,有时可能会因为某些条件的满足或者不满足需要结束整个while,还有可能在当次循环代码执行过程中剩下的不执行了而是进行一次的循环,这种时候就需要用2个功能
- 结束整个循环
- 结束本次循环
还好,Python的发明人,针对上述2个功能,发明除了对应的代码
- break,用来结束整个循环
- continue,用来结束本次循环
break 基本使用
break的作用是:结束它所属的整个循环
注意点:它不能单独使用,如果用的话一定需要放到循环中
while 中使用 break
- 未使用 break 的效果
- i = 0
while i<5:
print('----')
print(i)
i = i + 1 - 运行结果:
- ----
0
----
1
----
2
----
3
----
4 - 使用 break 的效果
- i = 0
while i<5:
print('----')
i = i+1
break
print(i) - 运行结果:
- ----
- 说明:
- 当程序执行到第6行时,遇到了break,那么此时break就会将它所在的while循环结束,所以只输出了一次----
for 循环中使用 break
- 未使用 break 的效果
- web_site = 'www.baidu.com'
for x in web_site:
print(x) - 运行结果:
- w
w
w
.
b
a
i
d
u
.
c
o
m - 使用 break 的效果
- web_site = 'codetutor.top'
for x in web_site:
print(x)
break - 运行结果:
- c
- 说明:
- 当程序执行到第5行break时,break会让整个for循环结束,所以只输出了第一个字母c
continue 的基本使用
while 中使用 continue
- 使用 continue 的效果
- i = 0
while i < 3:
i = i+1
print('----')
continue
print(i) - 运行结果:
- ----
----
---- - 小提示:代码执行过程通过Debug调试模式进行探究。
for 中使用continue
- 带有 continue 的循环示例如下:
- web_site = 'codetutor.top'
for x in web_site:
print(x)
continue
print("----") - 运行结果:
- c
o
d
e
t
u
t
o
r
.
t
o
p - 说明:
- 当程序遇到continue时,会导致本次for循环体中剩下的代码不会执行,而是进入下一次的循环
常见的用法
通过上面的案例,我们知道break、continue是可以直接放到循环中使用的
但是,在循环中直接运行break、continue有意义吗?其实你也会感觉到有些不舒服,我们一般的用法是在判断语句中使用break、continue
示例如下:
i = 3
while i > 0:
password = input("请输入密码:(还剩%d次机会)" % i)
if password == "123456":
print("密码输入正确")
break
i -= 1
说明:
- 如果密码输入正确,那么就不需要再次让用户输入密码,直接结束这个循环即可
- 一般情况下break、continue会在判断中使用,这样就能够实现该怎样循环的就怎样循环,不该循环的时候能立刻结束
在循环嵌套中使用
阅读如下代码,思考最终会输出什么?
i = 0
while i < 3:
print("i=%d" % i)
i += 1
j = 0
while j < 3:
print("---")
j += 1
break
最终输出结果为:
i=0
---
i=1
---
i=2
---
看到上述输出结果,我们发现:break作用在当前的循环体,并不会影响到外层循环!
continue在循环嵌套中的作用于break几乎一样,只不过它是结束本次循环,而break是结束整个循环
切记口诀:break、continue在哪个循环中就对哪个循环起作用
break 与 continue 使用总结
- break、continue只能用在循环中,除此以外不能单独使用
- break、continue在嵌套循环中,只对最近的一层循环起作用
- break能够立刻结束所在的循环
- continue的用来结束本次循环,紧接着执行下一次的循环
- 无论break放到while循环体中的任何位置,只要被执行一次,那么整个循环立刻结束