Проведіть швидкість і повторіть, поки петля (з прикладами)

У цій статті ви навчитеся створювати цикли while і повторювати… while у програмуванні Swift.

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

Цикл while виконує набір операторів, поки не стане умова false. Такі типи циклів найкраще використовувати, коли кількість ітерацій невідома до початку першої ітерації. Swift надає два типи циклів while:

1. Стрім, поки петля

Цей цикл оцінює свій стан на початку кожного проходження через цикл.

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

 while (TestExpression) ( // statements )

Як працює цикл while?

Це TestExpressionлогічний вираз.

Якщо TestExpressionоцінюється до true,

  • виконуються оператори всередині циклу while.
  • і TestExpressionоцінюється знову.

Цей процес триває до тих пір, поки не TestExpressionбуде оцінено false. Якщо TestExpressionобчислює до false, цикл while припиняється.

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

Приклад 1: While Loop

 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. Повторіть, поки петля

Цей цикл оцінює свій стан в кінці кожного проходження через цикл. Повторення… while циклу подібне до циклу while з однією різницею ключів. Тіло повторення… while циклу виконується один раз перед тестуванням тестового виразу.

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

 repeat ( // statements… ) while (testExpression)

Як повторити…, поки цикл працює?

Тіло циклу repeat… while виконується один раз (перед перевіркою тестового виразу). Тільки тоді перевіряється testExpression.

Якщо testExpression оцінюється як true, виконуються оператори всередині тіла циклу, і testExpression знову обчислюється. Цей процес триває до тих пір, поки не буде оцінено testExpression false.

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

Блок-схема повторення … в той час як Loop

Приклад 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. Нескінченна, поки петля

Якщо тестовий вираз ніколи не обчислюється false, тіло whileі repeat… whileциклу виконується нескінченну кількість разів.

Приклад 3: Нескінченне, поки петля

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

Коли ви запускаєте програму, результат буде:

Привіт Світ! Привіт Світ!…

Коли ви запускаєте програму, обидва цикли виконують print("Hello, World!")оператор нескінченну кількість разів. Отже, ви можете бачити безперервний вихід Привіт, Світ! у консолі.

Цікаві статті...