有 2 个不同的嵌套循环,每个循环都有一个 break 语句来在特定条件下中断外部循环。
我想知道我是否用相同的标题标记了 2 个外部循环,这会引发 break 语句的混淆吗?
然后我尝试了以下代码片段
//#1
outterLoop: for x in 1...3 {
innerLoop: for y in 1...3 {
if x == 3 {
break outterLoop //break the "outterLoop"
} else {
print("x: \(x), y: \(y)")
}
}
}
//#2
outterLoop: for a in 1...3 {
innerLoop: for b in 1...3 {
if b == 3 {
break outterLoop //break the "outterLoop"
} else {
print("a: \(a), b: \(b)")
}
}
}
事实证明代码工作得很好,并且没有出现重新声明问题。我认为这可能与范围主题有关。第一个 break只能看到#1代码块中的outterLoop ,第二个break只能在它所在的范围内看到outterLoop ,也就是#2代码块。结果,不可见的作用域限制了内部break可以“看到”的变量
问:我理解的对吗?如果没有,请纠正我。即使我没有错,我相信我使用了非正式和不精确的描述。如果您能给我一个更正式和准确的描述,那就太好了。
非常感谢