Swift while i powtórz podczas gdy Loop (z przykładami)

W tym artykule nauczysz się tworzyć pętle while i powtarzać… while w programowaniu w języku Swift.

W poprzednim artykule dowiedzieliśmy się o pętli for-in służącej do uruchamiania zestawu zadań określoną liczbę razy. W tym artykule dowiesz się, jak używać pętli for-in whilei repeat… whilejako alternatywy dla niej, gdy liczba iteracji jest nieznana.

Pętla while wykonuje zestaw instrukcji, dopóki nie zostanie spełniony warunek false. Tego rodzaju pętle najlepiej stosować, gdy liczba iteracji nie jest znana przed rozpoczęciem pierwszej iteracji. Swift udostępnia dwa rodzaje pętli while:

1. Swift while Loop

Ta pętla ocenia swój stan na początku każdego przejścia przez pętlę.

Składnia pętli while jest następująca:

 while (TestExpression) ( // statements )

Jak działa pętla while?

Jest TestExpressionto wyrażenie boolowskie.

Jeśli TestExpressionjest oceniany jako true,

  • wykonywane są instrukcje wewnątrz pętli while.
  • i TestExpressionjest ponownie oceniany.

Ten proces trwa do momentu TestExpressionoceny false. Jeśli TestExpressionwynikiem jest false, pętla while jest przerywana.

Schemat blokowy while Loop

Przykład 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")

Po uruchomieniu programu wynik będzie następujący:

 Przekroczyłeś poziom 0 Zdałeś poziom 1 Zdałeś poziom 2 Przekroczyłeś 3 poziom Przekroczyłeś 4 poziom Przekroczyłeś 5 poziom poza pętlą while 

W powyższym programie zmienne currentLevel i finalLevel są inicjowane na 0, a stała gameCompleted jest inicjowana na true.

W każdej iteracji pętli while sprawdza warunek currentLevel <= finalLevel. Jeśli warunek powróci true, wykonywane są instrukcje wewnątrz while pętla, w przeciwnym razie pętla się kończy.

Kroki wykonawcze
Iteracja Warunek (currentLevel <= finalLevel) Wynik
1 0 <= 5 (prawda) Przekroczyłeś poziom 0
2 1 <= 5 (prawda) Uzyskałeś poziom 1
3 2 <= 5 (prawda) Przekroczyłeś poziom 2
4 3 <= 5 (prawda) Uzyskałeś poziom 3
5 4 <= 5 (prawda) Uzyskałeś poziom 4
6 5 <= 5 (prawda) Uzyskałeś poziom 5
7 6 <= 5 (fałsz) poza pętlą while

2. Powtórz podczas gdy pętla

Ta pętla ocenia swój stan na końcu każdego przejścia przez pętlę. Pętla repeat… while jest podobna do pętli while z jedną kluczową różnicą. Treść powtórzenia… while pętla jest wykonywana raz przed sprawdzeniem wyrażenia testowego.

Składnia powtórzeń… while pętla to:

 repeat ( // statements… ) while (testExpression)

Jak działa pętla Repeat… while?

Ciało powtórzenia… while pętla jest wykonywana raz (przed sprawdzeniem wyrażenia testowego). Dopiero wtedy sprawdzany jest testExpression.

Jeśli testExpression ma wartość true, wykonywane są instrukcje wewnątrz treści pętli, a testExpression jest ponownie oceniany. Ten proces trwa do momentu, gdy testExpression zostanie oceniony na false.

Gdy testExpression jest false, pętla repeat… while zostaje zakończona.

Schemat blokowy powtórzeń… while Loop

Przykład 2: Powtórz podczas pętli

 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") 

Po uruchomieniu programu wynik będzie następujący:

 Zdałeś poziom 0 Zdałeś poziom 1 Zdałeś poziom 2 Przekroczyłeś 3 poziom Przekroczyłeś 4 poziom Przekroczyłeś 5 poziom poza pętlą powtarzania while 

W powyższym przykładzie po raz pierwszy wykonywane są instrukcje wewnątrz pętli. A dla następnej iteracji sprawdza warunek currentLevel <= finalLevel.

Jeśli warunek powróci true, wykonywane są instrukcje wewnątrz while pętla, w przeciwnym razie pętla się kończy.

Kroki wykonawcze
Iteracja Warunek (currentLevel <= finalLevel) Wynik
1 0 <= 5 (prawda) Przekroczyłeś poziom 0
2 1 <= 5 (prawda) Uzyskałeś poziom 1
3 2 <= 5 (prawda) Przekroczyłeś poziom 2
4 3 <= 5 (prawda) Uzyskałeś poziom 3
5 4 <= 5 (prawda) Uzyskałeś poziom 4
6 5 <= 5 (prawda) Uzyskałeś poziom 5
7 6 <= 5 (fałsz) poza pętlą powtarzania while

Mimo, że oba whilei repeat whilepętla mają same czynności egzekucyjnych, stan currentLevel <= finalLevel na repeat whilepętli jest wykonywany dopiero po wykonaniu sprawozdania wewnątrz niego.

Ale w whileprogramie warunek jest sprawdzany na początku przed wykonaniem zawartych w nim instrukcji.

3. Nieskończona pętla podczas gdy

Jeśli wyrażenie badanie nigdy nie ocenia się false, ciało whilei repeat… whilepętla jest wykonywana nieskończoną ilość razy.

Przykład 3: nieskończona pętla while

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

Po uruchomieniu programu wynik będzie następujący:

Witaj świecie! Witaj świecie!…

Po uruchomieniu programu obie pętle wykonują print("Hello, World!")instrukcję nieskończoną liczbę razy. Możesz więc zobaczyć ciągłe dane wyjściowe Hello, World! w konsoli.

Interesujące artykuły...