为了账号安全,请及时绑定邮箱和手机立即绑定

continue 是否会阻止 else 块在 for/else 语句中运行?

continue 是否会阻止 else 块在 for/else 语句中运行?

30秒到达战场 2022-06-02 16:32:45
在for带有语句的循环中,break我可以在末尾添加一个语句,如果我的循环从未命中语句else,它将被触发。forbreak我的问题是,这有continue什么影响?
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

continue不影响else:条款。else如果循环正常终止,即如果 a StopIteration(隐式)由迭代器引发,则运行该子句。

continue语句对特定的迭代没有任何作用,但是它不会阻止迭代器被耗尽。


查看完整回答
反对 回复 2022-06-02
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

不,else子句执行不受continue.


唯一可以防止else语句(在 for 循环之后)被触发的是break语句(或者您的代码在完成循环return之前退出或引发异常)。for


for i in range(5):

    continue

else:

    print("else triggered")

将打印else triggered。


请参阅文档:


循环语句可能有一个else子句;它在循环因列表用尽而终止(with for)或条件变为 false 时(with while)执行,但不是在循环被break语句终止时执行


[...]


当与循环一起使用时,子句与语句的子句比与语句的子句有else更多的共同点:语句的子句在没有异常发生时运行,而循环的子句在没有异常时运行。elsetryiftryelseelsebreak


仅break提到防止else子句运行,continue不是。


查看完整回答
反对 回复 2022-06-02
  • 2 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信