【问题标题】:break statement in for loop not workingfor循环中的break语句不起作用
【发布时间】:2014-02-13 08:11:09
【问题描述】:

我有以下代码,其中我以下列方式在 for 循环中使用 break 语句:

noBreak = True
def scanShift():
    i = 0
    for i in range(0,29):
        if s[i] < current < s[i+1]:   #1st if loop
            global noBreak
            if i in [1,3,5,7]:        #2nd if loop
                noBreak = False

            else: noBreak = True      #line1

            break
    return i

如果在 i = 3 时匹配 '1st if loop' 条件,则在进入 '2nd if loop' 之后程序会退出 '1st if loop' 而不会到达 break 语句。因此我的问题是为什么它会以这种方式发生,在执行“第二个 if 循环”之后不应该进入 break 语句然后跳出 for 循环吗?

【问题讨论】:

  • 您可以尝试将 else 正文块放在新的缩进行上吗?你能告诉我可变电流是从哪里来的吗?我想在我的系统上试试这个并给你答案。
  • 's' 是一个由按升序排列的日期时间组成的数组,而 current 是当前日期时间,即 datetime.datetime.now()。

标签: python-2.7 for-loop break


【解决方案1】:

刚刚意识到我目前没有在这台计算机上安装 python。

你能尝试运行它看看会发生什么吗?

noBreak = True
i = 0
for i in range(0,29):
    if 6 < i < 8:   #1st if loop
        if i in [1,3,5,7]:        #2nd if loop
            print "here"
            noBreak = False
        else: 
            print "there"
            noBreak = True      #line1
        print "Going to break out of loop"
        break
print i

我希望输出类似于:

>>here
>>Going to break out of loop
>>7

【讨论】:

  • 我曾尝试过类似的代码,但在上面的代码中可以正常工作。
  • 您是否尝试过将代码格式化为与我的更相似?您是否尝试过像我一样添加打印语句来确定程序的确切流程?您是否尝试过对几个值进行硬编码以尝试专门测试某些流并检查它们的输出?
  • @user2673943 让我知道问题是否仍然存在,或者如果我的帮助确实对您有所帮助,那么请将答案标记为已接受或将其标记为有用:) 谢谢,祝你好运!
猜你喜欢
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 2016-12-22
  • 1970-01-01
  • 2018-10-19
相关资源
最近更新 更多