English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете, как использовать команду break для передачи контроля программы.
При использовании циклов или условий может потребоваться пропустить некоторые инструкции в цикле или немедленно прервать цикл, не проверяя тестовое выражение
В этом случае будут использоваться команды break и continue. Вы узнаете о них в следующей главе Команда continue.
Команда break останавливает выполнение цикла или условия switch. Затем он переходит к следующей инструкции после цикла или условия switch.
Синтаксис команды break:
break
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.
Затем он跳出 цикл, чтобы напечатать Конец.
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")..
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: Statement), называются командами с меткой. Метка является идентификатором, который можно ссылаться на него в командах break или continue.
Здесь label является идентификатором. Когда выполняется команда break, она останавливает выполнение внутреннего цикла с меткой label, и программа немедленно переходит к следующей команде после команды с меткой.
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.