English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы Swift

Операторы в Swift

Управление потоком Swift

Коллекции Swift

Функции Swift

Swift высшего уровня

Предложение break в Swift

В этой статье вы узнаете, как использовать команду break для передачи контроля программы.

При использовании циклов или условий может потребоваться пропустить некоторые инструкции в цикле или немедленно прервать цикл, не проверяя тестовое выражение

В этом случае будут использоваться команды break и continue. Вы узнаете о них в следующей главе Команда continue.

Команда break останавливает выполнение цикла или условия switch. Затем он переходит к следующей инструкции после цикла или условия switch.

Синтаксис команды break:

break

Как работает команда break?

Пример 1: команда break в цикле for

for i in 1...5 {
    if i == 4 {
        break
    }
    print("i = \(i)")
}
print("Конец")

При выполнении этой программы, вывод будет следующим:

i = 1
i = 2
i = 3
Конец

В вышеуказанном примере диапазон для итерации составляет от 1 до 5.

Значение переменной i устанавливается в первый элемент ranges(1) и обновляется на следующий элемент диапазона при каждом итерировании.

Цикл также включает в себя оператор if, выражение i==4. Выражение выполняет команду break, когда его значение становится true (во время четвертого итерирования), что заканчивает цикл for-in.

Затем он跳出 цикл, чтобы напечатать Конец.

Пример 2: оператор break в цикле while в Swift

var currentLevel: Int = 1, finalLevel: Int = 2
var isLifeAvailable = true
while (isLifeAvailable) {
    
    if currentLevel > finalLevel {
        print("Игра закончена, больше нет уровней")
        break
    }
    // Играть, перейти к следующему уровню
    currentLevel += 1
    print("Следующий уровень")
}
print("За пределами цикла while")

При выполнении этой программы, вывод будет следующим:

Следующий уровень
Следующий уровень
Игра закончена, больше нет уровней
За пределами цикла while

В вышеуказанной программе тестовое выражение цикла while всегда равно true.

Когда currentLevel больше finalLevel, выполняется команда break в блоке if. Затем программа выходит из цикла while (завершает его), и выполняется команда после цикла, то есть print("За пределами цикла while")..

Пример 3: оператор break в Swift с вложенными циклами

for j in 1...2 {
    for i in 1...5 {
        if i == 4 {
            break
        }
        print("i = \(i)")
    }
    print("j = \(j)")
}

При выполнении этой программы, вывод будет следующим:

i = 1
i = 2
i = 3
j = 1
i = 1
i = 2
i = 3
j = 2

В上面的 программе команда break в блоке if i == 4 останавливает выполнение внутреннего цикла for i in 1...5, но продолжается выполнение внешнего цикла for j in 1...2.

Но если вы также хотите break из внешнего цикла for j in 1...2, то в Swift мы используем команды с меткой.

Команда с меткой (label)

Команды, имеющие префикс в виде (label: Statement), называются командами с меткой. Метка является идентификатором, который можно ссылаться на него в командах break или continue.

Как работает оператор break с меткой?

Здесь label является идентификатором. Когда выполняется команда break, она останавливает выполнение внутреннего цикла с меткой label, и программа немедленно переходит к следующей команде после команды с меткой.

Пример 4: оператор break с меткой

outerloop: for j in 1...2{
    innerloop: for i in 1...5 {
        if i == 4 {
            break outerloop
        }
        print("i = \(i)")
    }
    print("j = \(j)")
}

При выполнении этой программы, вывод будет следующим:

i = 1
i = 2
i = 3

В данном примере программы есть две метки outerloop: for j in 1...2 и innerloop: for i in 1...5.

Имена меток outerloop и innerloop могут использоваться вместе с предложением break.

Эта команда break outerloop завершает два цикла и заканчивает программу.

Если вы знакомы с другими языками программирования, такими как C, C++, Java и т.д., то для завершения выполнения условия switch используется предложение break. Но в Swift, предложение switch завершает свою работу сразу после выполнения первого соответствующего случая. Поэтому, добавление break в случае switch в Swift является опциональным. Для получения дополнительной информации посетитеУсловное предложение switch в Swift.