Подтвердить что ты не робот

Как разбить внешние петли из внутренних структур, которые реагируют на разрыв (петли/переключатель)

Как разбить внешний цикл изнутри вложенной структуры, которая отвечает на инструкцию break в Swift?

Например:

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?

4b9b3361

Ответ 1

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
    }
}