for循环中的break语句不起作用

时间:2014-02-13 08:11:10

标签: python-2.7 for-loop break

我有以下代码,其中我在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循环'条件,那么在转到'2nd if循环'之后,程序从'1st if循环'出来而没有到达break语句。因此我的问题是为什么它会以这种方式发生,不应该在执行'2nd if循环'后它应该转到break语句然后突破for循环?

1 个答案:

答案 0 :(得分:0)

刚才意识到我这台计算机上当前没有安装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