ネストされた 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)")
}
}
}
コードは問題なく動作し、再宣言の問題は発生していません。スコープのトピックに関連している可能性があると思います。最初の ブレークでは#1コード ブロックのoutterLoopのみを確認でき、 2 番目のブレークでは、 outterLoopが配置されたスコープ (別名#2コード ブロック) でのみ outterLoop を確認できます。その結果、非表示のスコープにより、内側のブレークが「見る」ことができる変数が制限されました。
質問: 私はそれが正しいと理解していますか? そうでない場合は、私を修正してください。たとえ私が間違っていなかったとしても、私は非公式で不正確な説明を使用したと信じています. より正式で正確な説明をいただければ幸いです。
どうもありがとう