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

Основной курс Swift

Операторы Swift

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

Коллекции Swift

Функции Swift

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

Вложенные циклы в Swift

В этой статье вы узнаете о вложенных циклах и их работе с помощью примеров.

Если в теле одного цикла существует другой цикл, то это называется вложенным циклом. Это пример вложенного цикла for-in.

for (i in 1...5) {
    // Слова внешнего цикла
    for j in 1...2 {
        // Слова внутреннего цикла
    }
    // Слова внешнего цикла
}

Здесь, цикл for j in 1...2 называется внутренним циклом, который находится внутри тела внешнего цикла for i in 1...5.

Следует отметить, что вложенные циклы могут не содержать циклов одного и того же типа. Например, вы можете поместить цикл while в тело цикла for, но он все равно будет вложенным.

Вложенные циклы for...in в Swift

ВложенныйЦикл for-inВключает один цикл for-in в качестве инструкции другого цикла for-in. Вы можете иметь любое количество вложенных циклов for-in по мере необходимости.

Пример 1: Вложенные циклы for-in в Swift

for (i in 1...5) {
    print("Итерация внешнего цикла ", i)
    for j in 1...2 {
        print("Итерация внутреннего цикла ", j)
        print("i = \(i); j = \(j)")
    }
}

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

Внешний цикл выполняется 1 раз
Внутренний цикл выполняется 1 раз
i = 1; j = 1
Внутренний цикл выполняется 2 раза
i = 1; j = 2
Внешний цикл выполняется 2 раза
Внутренний цикл выполняется 1 раз
i = 2; j = 1
Внутренний цикл выполняется 2 раза
i = 2; j = 2
Внешний цикл выполняется 3 раза
Внутренний цикл выполняется 1 раз
i = 3; j = 1
Внутренний цикл выполняется 2 раза
i = 3; j = 2
Внешний цикл выполняется 4 раза
Внутренний цикл выполняется 1 раз
i = 4; j = 1
Внутренний цикл выполняется 2 раза
i = 4; j = 2
Внешний цикл выполняется 5 раз
Внутренний цикл выполняется 1 раз
i = 5; j = 1
Внутренний цикл выполняется 2 раза
i = 5; j = 2

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

Вложенные циклы while в Swift

ВложенныйЦикл whileВключает один цикл while в качестве инструкции другого цикла while. Вы можете настроить любое количество вложенных циклов while по мере необходимости.

Пример 2: Вложенные циклы while в Swift

var i = 1
while i <= 5 {
    print("Итерация внешнего цикла ", i)
    var j = 1
    while (j <= 2) {
        print("Итерация внутреннего цикла ", j)
        print("i = \(i); j = \(j)")
        j += 1
    }
    i += 1
}

Вывод программы аналогичен выводу предыдущей программы.

Вложенные циклы repeat...while в Swift

ВложенныйЦикл repeat while Включает один цикл repeat-while в качестве инструкции другого цикла repeat-while. Вы можете настроить любое количество вложенных циклов while по мере необходимости.

Пример 3: Вложенные повторяющиеся циклы в Swift

var i = 1
repeat {
    print("Итерация внешнего цикла ", i)
    var j = 1
    repeat {
        print("Итерация внутреннего цикла ", j)
        print("i = \(i); j = \(j)")
        j += 1
    while (j <= 2)
    i += 1
while (i <= 5)

Вывод программы аналогичен выводу предыдущей программы.

Вложенные циклы различных типов в Swift

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

Пример 3: Вложенные циклы while и for в Swift

Этот код содержит различные типы вложенных циклов (циклы while и for-in).

var i = 1
while i <= 5 {
    print("Итерация внешнего цикла ", i)
    for j in 1...2 {
        print("Итерация внутреннего цикла ", j)
        print("i = \(i); j = \(j)")
    }
    i += 1
}

Вывод программы аналогичен выводу предыдущей программы.

Пример 4: Программа, создающая шаблоны с использованием циклов Swift

Вложенные циклы часто используются в программировании для создания шаблонов. Ниже приведен пример программы, показывающей, как использовать вложенные циклы для создания простых шаблонов.

let rows = 5
for i in 1...rows {
    for j in 1...i {
        print("\(j) \", terminator: ")")
    }
    print("")
}

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

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5