Python嵌套循环中如何控制外层循环跳过迭代?
问题解决方法
你的代码存在几个关键问题导致无法实现需求,下面一步步修正:
核心问题分析
你用continue的话,只会跳过当前内层循环的这一次迭代(也就是当前的second值),但不会终止整个内层循环。要实现「遇到奇数就终止内层循环,直接进入外层下一个first」,得用break语句——它会直接终止当前所在的内层循环。
另外你的代码还有两个语法错误:
range(0.10)是错误写法,应该写成range(0,10)(用逗号分隔起始和结束值,不是小数点)- 缩进完全混乱,Python对缩进要求严格,循环、判断的层级必须对齐
修正后的代码
for first in range(0, 10): for second in range(0, 10): # 用取模运算判断奇数,比维护列表更高效简洁 if second % 2 == 1: # 终止内层循环,直接进入外层下一个first的迭代 break print(first + second)
代码说明
- 当内层循环的
second是奇数时,执行break直接跳出整个内层循环,外层循环自动进入下一个first的迭代 second % 2 == 1是判断奇数的标准写法,比维护一个奇数列表更高效,也避免了列表查找的额外开销- 所有代码的缩进严格对齐,符合Python语法要求
如果坚持想用列表判断奇数,也可以修正后使用,但仍然推荐取模的方式:
odd = [1,3,5,7,9] for first in range(0, 10): for second in range(0, 10): if second in odd: break print(first + second)
内容的提问来源于stack exchange,提问作者Andrea Mancini
相关产品推荐
相关产品推荐

