0Pricing
Swift Academy · Урок

Циклы while и repeat-while

Изучите циклы с условием и гарантируйте как минимум одно выполнение с помощью repeat-while

«Циклы while и repeat-while» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Добро пожаловать

Когда количество итераций заранее неизвестно, лучше всего подходят циклы `while` и `repeat-while`. Давайте разберёмся, когда и как использовать каждый из них.

Цикл while

Цикл `while` проверяет условие *перед* каждой итерацией: ```swift var count = 0 while count < 5 { print(count) count += 1 } // prints 0, 1, 2, 3, 4 ``` Если изначально условие ложно, тело цикла не выполнится ни разу.

Цикл repeat-while

Цикл `repeat-while` проверяет условие *после* каждой итерации, гарантируя как минимум одно выполнение: ```swift var x = 10 repeat { print(x) x -= 3 } while x > 0 // prints 10, 7, 4, 1 ```

while и repeat-while

Используйте `while`, если выполнение может вообще не понадобиться. Используйте `repeat-while`, если тело должно выполниться хотя бы один раз: ```swift // Reading input until valid — must try at least once: repeat { input = readLine() ?? "" } while input.isEmpty ```

Бесконечные циклы с while true

Цикл `while true` выполняется бесконечно, пока не встретит `break`, — это распространённый шаблон для циклов обработки событий: ```swift while true { let event = nextEvent() if event == .quit { break } handleEvent(event) } ``` Всегда проверяйте, что условие выхода достижимо.

Пример обратного отсчёта

```swift var countdown = 5 while countdown > 0 { print("\(countdown)...") countdown -= 1 } print("Liftoff!") ``` Это классический шаблон цикла while: уменьшать значение, пока условие не станет ложным.

Как избежать бесконечных циклов

Распространённая ошибка, приводящая к бесконечному циклу: ```swift var i = 0 while i < 5 { print(i) // forgot i += 1 ← infinite loop! } ``` Всегда проверяйте, что переменная цикла обновляется и что условие в конечном итоге станет ложным.

while с привязкой Optional

Объединяйте `while` с привязкой Optional, чтобы обрабатывать последовательность до тех пор, пока не будет получено значение nil: ```swift var items: [Int] = [1, 2, 3] while let value = items.first { print(value) items.removeFirst() } ``` Этот шаблон удобно использовать для последовательного удаления элементов из коллекций.

Пример игрового цикла

```swift var lives = 3 var gameOver = false while !gameOver { let hit = Bool.random() if hit { lives -= 1 } if lives == 0 { gameOver = true } } print("Game Over") ``` В настоящих играх такой шаблон используют, чтобы продолжать выполнение до наступления завершающего условия.

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

Циклы while можно вкладывать друг в друга — это часто используется при разборе данных и в алгоритмах для матриц: ```swift var row = 0 while row < 3 { var col = 0 while col < 3 { print("(\(row),\(col))", terminator: " ") col += 1 } print(); row += 1 } ```

Быстрая проверка

Какой цикл гарантирует, что его тело выполнится **хотя бы один раз**?

Итоги

Главное: • `while condition { }` — проверяет условие перед каждым выполнением; может не выполниться ни разу • `repeat { } while condition` — проверяет условие после выполнения; срабатывает хотя бы один раз • `while true { ... break }` — шаблон цикла обработки событий • Всегда проверяйте, что переменная цикла движется к завершению • Объединяйте `while` с привязкой Optional для удобной обработки последовательности Далее: перебор коллекций с помощью for-in.

Часто задаваемые вопросы

Урок «Циклы while и repeat-while» бесплатный?

Да — полный текст урока «Циклы while и repeat-while» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Циклы while и repeat-while»?

Изучите циклы с условием и гарантируйте как минимум одно выполнение с помощью repeat-while Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Циклы while и repeat-while»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Циклы for-in с диапазонами
  2. Циклы while и repeat-while
  3. Итерация по коллекциям с for-in
  4. break, continue и именованные инструкции
← Назад к Swift Academy