Быстрый цикл while и повторение цикла while (с примерами)

В этой статье вы научитесь создавать циклы while и repeat… while в программировании на Swift.

В предыдущей статье мы узнали о цикле for-in для выполнения набора задач определенное количество раз. В этой статье вы научитесь использовать whileи repeat… whileв качестве альтернативы цикла for-in, когда количество итераций неизвестно.

Цикл while выполняет набор операторов, пока не станет условие false. Эти виды циклов лучше всего использовать, когда количество итераций неизвестно до начала первой итерации. Swift предоставляет два вида циклов while:

1. Swift while Loop

Этот цикл оценивает свое состояние в начале каждого прохода через цикл.

Синтаксис цикла while:

 while (TestExpression) ( // statements )

Как работает цикл while?

Это TestExpressionлогическое выражение.

Если TestExpressionоценивается как true,

  • операторы внутри цикла while выполняются.
  • и TestExpressionснова оценивается.

Этот процесс продолжается до тех пор, пока не TestExpressionбудет оценено значение false. Если TestExpressionзначение falseравно, цикл while завершается.

Блок-схема цикла while

Пример 1: цикл while

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")

Когда вы запустите программу, вывод будет:

 Вы прошли уровень 0 Вы прошли уровень 1 Вы прошли уровень 2 Вы прошли уровень 3 Вы прошли уровень 4 Вы прошли уровень 5 вне цикла while 

В приведенной выше программе переменные currentLevel и finalLevel инициализируются значением 0, а константа gameCompleted инициализируется значением true.

На каждой итерации цикла while он проверяет условие currentLevel <= finalLevel. Если условие возвращается true, инструкции внутри цикла while выполняются, в противном случае цикл завершается.

Шаги выполнения
Итерация Условие (currentLevel <= finalLevel) Вывод
1 0 <= 5 (верно) Вы прошли уровень 0
2 1 <= 5 (верно) Вы прошли уровень 1
3 2 <= 5 (верно) Вы прошли уровень 2
4 3 <= 5 (верно) Вы прошли уровень 3
5 4 <= 5 (верно) Вы прошли уровень 4
6 5 <= 5 (верно) Вы прошли 5 уровень
7 6 <= 5 (ложь) вне цикла while

2. Повторить во время цикла

Этот цикл оценивает свое состояние в конце каждого прохода через цикл. Цикл repeat… while похож на цикл while с одним ключевым отличием. Тело цикла repeat… while выполняется один раз перед проверкой тестового выражения.

Синтаксис цикла repeat… while:

 repeat ( // statements… ) while (testExpression)

Как работает цикл … while?

Тело цикла repeat… while выполняется один раз (перед проверкой тестового выражения). Только после этого проверяется testExpression.

Если testExpression имеет значение true, инструкции внутри тела цикла выполняются, и testExpression вычисляется снова. Этот процесс продолжается до тех пор, пока не будет оценено значение testExpression false.

Когда testExpression равно false, цикл повторения… while завершается.

Блок-схема повторения… цикла while

Пример 2: Повторение во время цикла

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop") 

Когда вы запустите программу, вывод будет:

 Вы прошли уровень 0 Вы прошли уровень 1 Вы прошли уровень 2 Вы прошли уровень 3 Вы прошли уровень 4 Вы прошли уровень 5 вне цикла повторения while 

В приведенном выше примере впервые выполняются операторы внутри цикла. И на следующей итерации проверяет условие currentLevel <= finalLevel.

Если условие возвращается true, инструкции внутри цикла while выполняются, в противном случае цикл завершается.

Шаги выполнения
Итерация Условие (currentLevel <= finalLevel) Вывод
1 0 <= 5 (верно) Вы прошли уровень 0
2 1 <= 5 (верно) Вы прошли уровень 1
3 2 <= 5 (верно) Вы прошли уровень 2
4 3 <= 5 (верно) Вы прошли уровень 3
5 4 <= 5 (верно) Вы прошли уровень 4
6 5 <= 5 (верно) Вы прошли 5 уровень
7 6 <= 5 (ложь) вне цикла повторения while

Хотя оба whileи repeat whileпетли имеют те же шаги выполнения, условие currentLevel <= finalLevel на repeat whileконтуре выполняется только после выполнения операторов внутри него.

Но в while, условие проверяется вначале перед выполнением операторов внутри него.

3. Бесконечный цикл while

Если тестовое выражение никогда не оценивается false, тело whileи repeat… whileцикл выполняется бесконечное количество раз.

Пример 3: бесконечный цикл while

 while (true) ( print("Hello, World!") )
 repeat ( print("Hello, World!") ) while (true)

Когда вы запустите программу, вывод будет:

Привет мир! Привет мир!…

Когда вы запускаете программу, оба цикла выполняют print("Hello, World!")оператор бесконечное количество раз. Итак, вы можете видеть непрерывный вывод Hello, World! в консоли.

Интересные статьи...