1. ホーム
  2. loops

[解決済み] ループやスイッチに対応する内部構造から外部ループを切り離す方法

2023-06-07 13:03:04

質問

のレスポンスがあるネストされた構造体から、外側のループを解除するにはどうしたらよいでしょうか。 break ステートメントに応答する入れ子構造内の外側ループを解除するにはどうすればよいでしょうか?

例えば

while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}

break から抜け出すだけです。 switch から抜け出すだけです。Swiftでは、空のケースは許可されないので、それを使用しなければなりません。 どのように私は完全にループを終了することができます。 switch ?

どのように解決するのですか?

Swift では ラベル付きステートメント . ラベル付きステートメントを使用すると、どの制御構造を break を指定することができます(ただし、一般に可読性の観点からは、ネストは少ないほうがよいでしょう)。 また、これは continue .

例です。

outerLoop: while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     break outerLoop // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}