Menu
Coddy logo textTech

Диапазоны в циклах

Часть раздела Основы путешествия по Swift на Coddy — урок 48 из 86.

Вы использовали диапазоны вида 1...5 в своих циклах, но Swift предлагает больше гибкости в том, как вы определяете эти диапазоны. Давайте изучим различные типы диапазонов и полезный прием для обратного отсчета.

Оператор закрытого диапазона (...) включает оба граничных значения:

for i in 1...3 {
    print(i)
}
// Вывод: 1, 2, 3

Оператор полуоткрытого диапазона (..<) исключает верхнюю границу, что особенно полезно при работе с индексами, начинающимися с нуля:

for i in 0..<3 {
    print(i)
}
// Вывод: 0, 1, 2

Иногда вам нужно выполнить цикл в обратном порядке. Метод reversed() позволяет выполнять итерацию в обратном направлении по диапазону:

for i in (1...3).reversed() {
    print(i)
}
// Вывод: 3, 2, 1

Обратите внимание на скобки вокруг диапазона — они обязательны при вызове reversed() для диапазона. Этот метод идеально подходит для обратного отсчета или когда вам нужно обработать элементы от последнего к первому.

challenge icon

Задание

Легко

Напишите функцию countdown, которая принимает n и возвращает строку, содержащую обратный отсчет от n до 1, за которым следует "Go!".

Используйте метод reversed() для диапазона, чтобы выполнить итерацию в обратном порядке и построить строку обратного отсчета.

Логика:

  • Создайте диапазон от 1 до n и разверните его
  • Сформируйте строку, где каждое число разделено символом новой строки
  • Добавьте "Go!" в последней строке

Параметры:

  • n (Int): Начальное число для обратного отсчета (1 или больше)

Возвращает: Строку, в которой каждое число обратного отсчета находится на отдельной строке, заканчивающуюся "Go!" (String). Формат:

3
2
1
Go!

Например, если n равно 3, функция возвращает "3\n2\n1\nGo!".

Шпаргалка

Swift предоставляет два оператора диапазона для циклов:

Оператор закрытого диапазона (...) включает обе конечные точки:

for i in 1...3 {
    print(i)
}
// Вывод: 1, 2, 3

Полуоткрытый оператор диапазона (..<) исключает верхнюю границу:

for i in 0..<3 {
    print(i)
}
// Вывод: 0, 1, 2

Чтобы выполнить итерацию в обратном порядке по диапазону, используйте метод reversed():

for i in (1...3).reversed() {
    print(i)
}
// Вывод: 3, 2, 1

Примечание: При вызове reversed() требуются круглые скобки вокруг диапазона.

Попробуйте сами

func countdown(n: Int) -> String {
    // Напишите код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы