我试图写一个for循环,它有一个' continue'并且打破了#39;在里面。代码如下
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
完全错过了。我不知道我写的哪一行不正确。谢谢!
答案 0 :(得分:1)
代码的这一部分
if a ==10:
print "a = (%d) " % (a)
break
由于为continue语句指定的条件,永远不会执行。换句话说,你说当a不等于1,2或3时,循环返回执行,这意味着它将永远不会到达continue语句后的下一行。因此,当a等于10时,它将满足continue语句的条件并返回循环以继续执行。
如果要在等于10时打印出a,则可能不需要continue语句。试试这段代码:
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
a +=1
print "a = (%d) " % (a)
if a == 10:
print "a = (%d) " % (a)
您可以浏览此资源http://www.tutorialspoint.com/python/python_loop_control.htm以更好地理解python for loop结构
答案 1 :(得分:0)
您编写的错误行是continue语句。 它的作用是停止当前的迭代并带你进入下一个循环迭代。根据你的问题语句,不需要continue语句。尝试删除continue语句,它将运行。 以下是示例代码:
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:
a +=1
print "a = (%d) " % (a)
if a ==10:
print "a = (%d) " % (a)
break