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

Основы Swift

Операторы Swift

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

Коллекции Swift

Функции Swift

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

Стatement continue в Swift

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

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

В данном случае используются команды break и continue. Посетите эту страницу, чтобы узнать больше оКоманда breakБолее подробная информация.

Команда continue останавливает выполнение цикла или условий в switch-структуре. Затем она возвращается к проверке тестового выражения цикла.

Грамматика команды continue:

continue

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

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

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).

Пример 2: Инструкция continue в цикле while в Swift

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.

Пример 3: Инструкция continue в Swift с вложенными циклами

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 — это идентификатор. При выполнении инструкции continue программа пропускает оставшуюся часть цикла и переходит к инструкции, начинающейся с label.

Пример 4: инструкции с меткой continue

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 будут обновлены до следующего числа в диапазоне