【问题标题】:Proper usage of 'continue' and 'break' in for loop在 for 循环中正确使用“继续”和“中断”
【发布时间】: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 是搜索。

标签: python for-loop


【解决方案1】:

这部分代码

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 for 循环结构

【讨论】:

    【解决方案2】:

    您写的错误行是 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2012-12-28
      • 2014-06-10
      相关资源
      最近更新 更多