繁体   English   中英

'continue' 和 'break' 在 for 循环中的正确使用

[英]Proper usage of 'continue' and 'break' in for loop

我试图编写一个 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

完全错过了。 我不知道我写的哪一行是错误的。 谢谢!

这部分代码

if a ==10:
print "a = (%d) " % (a)
break

由于为 continue 语句指定的条件,永远不会执行。 换句话说,您是说当 a 不等于 1、2 或 3 时,循环会返回执行,这意味着它永远不会在 continue 语句之后到达下一行。 所以,当 a 等于 10 时,它会满足 continue 语句的条件并回到循环继续执行。

如果你想在 a 等于 10 时打印出来,你可能不需要 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 的循环结构

您写的不正确的行是 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM