Циклы

Последнее обновление: 29.12.2017

Цикл for-in

С помощью цикла for-in мы можем перебрать элементы коллекции (массивы, множества, словари) или последовательности. Он имеет следующую форму:

for объект_последовательности in последовательность {
	
	// действия
}

Например, переберем элементы массива:

for item in 1...5 {
    
    print(item)
}

Выражение 1...5 образует последовательность из пяти чисел от 1 до 5. И цикл проходит по всем элементам последовательности. При каждом проходе он извлекает одно число и передает его в переменную item. Таким образом, цикл сработает пять раз.

С помощью оператора where можно задавать условия выборки из последовательности элементов:

for i in 0...10 where i % 2 == 0 {

	print(i) // 0, 2, 4, 6, 8, 10
}

Здесь из последовательности 0...10 извлекаются только те элементы, которые соответствуют условию после оператора where - i % 2 == 0, то есть четные числа.

Цикл while

Оператор while проверяет некоторое условие, и если оно возвращает true, то выполняет блок кода. Этот цикл имеет следующую форму:

while условие {
	
	// действия
}

Например:

var i = 10
while i > 0 {
	
	print(i)
	i-=1
}

При этом надо внимательно подходить к условию. Если оно всегда будет возвращать true, то мы получим бесконечный цикл, и приложение может зависнуть.

Цикл repeat-while

Цикл repeat-while сначала выполняет один раз цикл, и если некоторое условие возвращает true, то продолжает выполнение цикла. Он имеет следующую форму:

repeat {

    // действия

} while условие

Например, перепишем предыдущий цикл while:

var i = 10

repeat {
	
	print(i)
	i-=1
} while i > 0

Здесь цикл также выполнится 10 раз, пока значение переменной i не станет равно 0.

Но рассмотрим другую ситуацию:

var i = -1

repeat {
	
	print(i)
	i-=1
} while i > 0

Несмотря на то, что переменная i меньше 0, но цикл выполнится один раз.

Операторы continue и break

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

for i in 0...10 {
    if i == 5{
        break
    }
    print(i) // 0, 1, 2, 3, 4
}

Поскольку в цикле идет проверка, равно ли значение переменной i числу 5, то когда перебор дойдет до числа 5, сработает оператор break, и цикл завершится.

Теперь поставим себе другую задачу. А что если мы хотим, чтобы при проверке цикл не завершался, а просто переходил к следующему элементу. Для этого мы можем воспользоваться оператором continue:

for i in 0...10 {
    if i == 5{
        continue
    }
    print(i) // 0, 1, 2, 3, 4, 6, 7, 8,, 9, 10
}

В этом случае цикл, когда дойдет до числа 5, которое не удовлетворяет условию проверки, просто пропустит это число и перейдет к следующему элементу последовательности.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850