如何在 Julia 中跳出嵌套的 for 循环

How to break out of nested for loops in Julia

我试图以一种非常无效的方式打破嵌套循环:

BreakingPoint = false
a=["R1","R2","R3"]
b=["R2","R3","R4"]
for i in a
  for j in b
    if i == j
      BreakingPoint = true
      println("i = $i, j = $j.")
    end
    if BreakingPoint == true; break; end
  end
  if BreakingPoint == true; break; end
end

有更简单的方法吗?在我的实际问题中,我不知道数组 ab 中的内容,除了它们是 ASCIIString 之外。数组名称(示例代码中的 ab)也是通过元编程方法自动生成的。

将 2D 循环放入一个函数中,并在需要时尽早 return break

你可以做以下两件事之一

在多外循环中有循环语句(如果它是这样叫的)

for i in a, j in b
    if i == j
        break
    end 
end 

这是干净的,但并不总是可能的

我会因为提出这个建议而被钉在十字架上,但你可以使用@goto 和@label

for i in a
    for j in b
        if i == j
            @goto escape_label
        end
    end
end

@label escape_label

如果您使用@goto/@label 方式,为了人们 maintaining/reviewing 代码,请正确记录您的使用,因为使用标签导航代码非常烦人

关于多循环中断的讨论,见this