Прекарайте бързо докато повтаряте, докато повтаряте (с примери)

В тази статия ще се научите да създавате while и да повтаряте … while цикли в Swift програмирането.

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

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

1. Бързо, докато Loop

Този цикъл оценява състоянието си в началото на всяко преминаване през цикъла.

Синтаксисът на цикъл 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, операторите вътре в цикълът се изпълняват, в противен случай цикълът се прекратява.

Стъпки за изпълнение
Повторение Условие (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 с една ключова разлика. Тялото на repeat … while цикъл се изпълнява веднъж, преди да се провери тестовият израз.

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

 repeat ( // statements… ) while (testExpression)

Как се повтаря … докато цикълът работи?

Тялото на repeat … while цикъл се изпълнява веднъж (преди проверка на тестовия израз). Само тогава се проверява testExpression.

Ако testExpression се оцени на true, изпълненията в тялото на цикъла се изпълняват и testExpression се оценява отново. Този процес продължава, докато testExpression се оцени на false.

Когато testExpression е false, цикълът repeat … 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 извън цикъла за повторение докато 

В горния пример за първи път се изпълняват операторите вътре в цикъла. И за следваща итерация проверява състоянието currentLevel <= finalLevel.

Ако условието се върне true, операторите вътре в цикълът се изпълняват, в противен случай цикълът се прекратява.

Стъпки за изпълнение
Повторение Условие (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и repeat whileцикълът, и цикълът имат еднакви стъпки за изпълнение, условието currentLevel <= finalLevel за repeat whileцикъл се изпълнява само след изпълнение на изразите вътре в него.

Но в while, състоянието се проверява в началото, преди да се изпълнят изявленията вътре в него.

3. Безкрайно, докато Loop

Ако тестовият израз никога не изчислява на false, тялото на whileи repeat… whileцикъл се изпълнява безкраен брой пъти.

Пример 3: Безкрайно, докато цикъл

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

Когато стартирате програмата, изходът ще бъде:

Здравей свят! Здравей свят!…

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

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