我的break语句并没有打破for循环

时间:2018-03-08 17:28:13

标签: c++

我正在为一项任务编写一些代码。一切都很顺利,除了我在尝试打破for循环时遇到问题。我有以下代码:

class IterData:
  def __init__(self, filepath):
     #only pass the necessary data
  def __iter__(self):
     #implement iter here

class Data:
  def __init__(self, filepath):
    # Computationaly expensive
  @classmethod
  def new_iter(cls, filepath):
    return IterData(filepath)

results = Data.new_iter('path')
for batch_x, batch_y in results:
   pass

因此,break应该会让我们脱离for循环,以便代码可以在以后继续使用不同的行和列值。除了这个之外,这适用于我的其他所有情况。我设置了一个虚拟输出,它将打印第一个案例,然后永远这个。我无法看到为什么它不会打破for循环,所以希望一些有经验的程序员可以帮我搞清楚。谢谢!

1 个答案:

答案 0 :(得分:0)

break将退出循环。因此,条件(n[a][j] == ourPiece)(n[a][j] == blank)永远不会被看到。永远不会触发for (a >= 0)上的保护条件,因为变量a是一个有符号整数,它总是会减少,显然会开始为负。

对负整数进行索引很少是正确的。