【发布时间】:2017-01-30 17:43:52
【问题描述】:
我试图编写一个包含“继续”和“中断”的 for 循环。代码如下
b = 0
for a in range(1,20):
if a == 1:
b =1
print b
elif a == 2:
b = 2
print b
elif a == 3:
b = 3
print b
else:
continue
a +=1
print "a = (%d) " % (a)
if a ==10:
print "a = (%d) " % (a)
break
我想做的是循环a并使用a作为条件来确定b的值。另外我不希望a 达到20,所以我添加另一个条件if a == 10 以提前结束循环。但是,打印出来的结果并不完全是我想要的:
1
a = (2)
2
a = (3)
3
a = (4)
这意味着
if a ==10:
print "a = (%d) " % (a)
break
完全错过了。我不知道我写的哪一行不正确。谢谢!
【问题讨论】:
-
您认为
continue是什么意思?这并不意味着“继续”。另外,您认为a += 1会如何影响正在进行的for循环? -
要点击
break语句,您需要在循环开始时使用a == 9。但是,a == 9对应于else: continue,它会跳过循环的其余部分(包括break语句)......这里的最佳解决方案实际上取决于您要执行的操作,但如果您添加 @987654337 @分支,你应该开始看到break被击中了。 -
pass表示“继续前进”,continue表示跳转到下一个迭代,break表示完全结束当前正在运行的循环。所以,你不应该使用else: continue。如果您删除它,它可能会稍微更符合您的期望。 -
continue是过滤器,break是搜索。