English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете, как использовать команду continue для передачи управления в программе.
При использовании циклов или условных предложений может потребоваться пропустить некоторые строки в цикле или немедленно прервать цикл, не проверяя тестовое выражение.
В данном случае используются команды break и continue. Посетите эту страницу, чтобы узнать больше оКоманда breakБолее подробная информация.
Команда continue останавливает выполнение цикла или условий в switch-структуре. Затем она возвращается к проверке тестового выражения цикла.
Грамматика команды continue:
continue
for i in 1...5 { if i == 4 { continue {} print("i = \(i)") {}
При выполнении этой программы вывод будет следующим:
i = 1 i = 2 i = 3 i = 5
В данном примере, диапазон итерируемой последовательности составляет от 1 до 5.
Значение переменной i устанавливается в первый номер из ranges(1) и обновляется на следующий номер из диапазона при каждом итерировании.
Цикл также включает условное предложение i === 4. Когда выражение имеет значение true (во время четвертого итерирования) выполняется команда continue, пропускается выполнение команды print("i = \(i)"), и переход к следующей итерации (i = 5).
var intialLevel:Int = -5, finalLevel:Int = 2 var currentLevel:Int = intialLevel while currentLevel < finalLevel { if intialLevel < 0 { print("Начальный уровень должен быть положительным числом") intialLevel = 0 currentLevel = intialLevel continue // Пропустить текущее выполнение {} currentLevel += 1 print("Следующий уровень") {} print("Вне цикла while")
При выполнении этой программы вывод будет следующим:
Начальный уровень должен быть положительным числом Следующий уровень Следующий уровень Вне цикла while
В приведенном выше примере цикл while работает до тех пор, пока currentLevel меньше finalLevel. Поскольку значение initialLevel分配лено -5 и меньше 0, выполняются инструкции внутри if.
Когда программа достигает инструкции continue, она пропускает инструкции в цикле while и затем возвращается, чтобы проверить условие currentLevel<finalLevel.
for j in 1...2 { for i in 1...5 { if i == 4 { continue {} print("i = \(i)") {} print("j = \(j)") {}
При выполнении этой программы вывод будет следующим:
i = 1 i = 2 i = 3 i = 5 j = 1 i = 1 i = 2 i = 3 i = 5
В приведенном выше примере инструкция continue в условиях if i==4 пропускает выполнение инструкции print("i=\(i)") в внутреннем цикле for. Но она не прерывает выполнение внешнего цикла for i in 1...5.
Но что, если вы хотите прервать и внешнюю петлю? Для этого в Swift вам нужно использовать инструкции с меткой.
Инструкции, имеющие префикс в виде (label: Statement), называются инструкциями с меткой. Метка — это идентификатор, который можно引用 в инструкциях break или continue.
Здесь, label — это идентификатор. При выполнении инструкции continue программа пропускает оставшуюся часть цикла и переходит к инструкции, начинающейся с label.
outerloop: for j in 1...2 { innerloop: for i in 1...5 { if i == 4 { continue outerloop {} print("i = \(i)") {} print("j = \(j)") {}
При выполнении этой программы вывод будет следующим:
i = 1 i = 2 i = 3 i = 1 i = 2 i = 3
В программе выше есть две помеченные инструкции outerloop: for j in 1...2 и innerloop: for i in 1...5.
Имена меток outerloop и innerloop могут использоваться вместе с оператором continue.
В программе мы используем оператор continue outerloop, чтобы пропустить выполнение инструкций在内循环 и внешнем цикле. В этом процессе значения i и j будут обновлены до следующего числа в диапазоне