Bu makalede, Swift programlamasında while oluşturmayı ve… while döngülerinde tekrar etmeyi öğreneceksiniz.
Önceki makalede, bir dizi görevi belirli sayıda çalıştırmak için giriş döngüsünü öğrendik. Bu makalede, kullanım öğreneceksiniz while
ve repeat… while
yineleme sayısının bilinmediği zaman için-de döngünün bir alternatif olarak.
While döngüsü, bir koşul oluşana kadar bir dizi deyimi yürütür false
. Bu tür döngüler, ilk yineleme başlamadan önce yinelemelerin sayısı bilinmediğinde en iyi şekilde kullanılır. Swift iki tür while döngüsü sağlar:
1. Döngü sırasında hızlı
Bu döngü, döngü boyunca her geçişin başlangıcındaki durumunu değerlendirir.
While döngüsünün sözdizimi şöyledir:
while (TestExpression) ( // statements )
Döngü nasıl çalışır?
TestExpression
Bir Boole ifadesidir.
Olarak TestExpression
değerlendirilirse true
,
- while döngüsü içindeki ifadeler çalıştırılır.
- ve
TestExpression
yeniden değerlendirilir.
Bu süreç TestExpression
değerlendirilene kadar devam eder false
. Olarak TestExpression
değerlendirilirse false
, while döngüsü sonlandırılır.
While Döngüsü akış çizelgesi
Örnek 1: Döngü Halindeyken
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")
Programı çalıştırdığınızda, çıktı:
Seviye 0'ı geçtiniz Seviye 1'i geçtiniz Seviye 2'yi geçtiniz Seviye 3'ü geçtiniz Seviye 5'i while döngüsü dışında geçtiniz
Yukarıdaki programda, currentLevel ve finalLevel değişkeni 0 olarak ve sabit gameCompleted olarak başlatılır true
.
While döngüsünün her yinelemesinde koşulu kontrol eder currentLevel <= finalLevel
. Koşul dönerse true
, while döngüsü içindeki ifadeler yürütülür, aksi takdirde döngü sona erer.
Yineleme | Koşul (currentLevel <= finalLevel) | Çıktı |
---|---|---|
1 | 0 <= 5 (doğru) | Seviye 0'ı geçtiniz |
2 | 1 <= 5 (doğru) | 1. seviyeyi geçtiniz |
3 | 2 <= 5 (doğru) | 2. seviyeyi geçtiniz |
4 | 3 <= 5 (doğru) | 3. seviyeyi geçtiniz |
5 | 4 <= 5 (doğru) | 4. seviyeyi geçtiniz |
6 | 5 <= 5 (doğru) | 5. seviyeyi geçtiniz |
7 | 6 <= 5 (yanlış) | while döngüsünün dışında |
2. Döngü sırasında tekrarlayın
Bu döngü, döngü boyunca her geçişin sonundaki durumunu değerlendirir. Tekrar… while döngüsü, bir anahtar farkı olan while döngüsüne benzer. Yinele gövdesi… while döngüsü, test ifadesi kontrol edilmeden önce bir kez yürütülür.
Yineleme sözdizimi… while döngüsü:
repeat ( // statements… ) while (testExpression)
Döngü çalışırken… nasıl tekrarlanır?
Yinele gövdesi… while döngüsü bir kez yürütülür (test ifadesini kontrol etmeden önce). Ancak o zaman testExpression kontrol edilir.
TestExpression doğru olarak değerlendirilirse, döngünün gövdesi içindeki ifadeler yürütülür ve testExpression yeniden değerlendirilir. Bu süreç, testExpression ile değerlendirilene kadar devam eder false
.
TestExpression olduğunda false
, tekrar… while döngüsü sona erer.
Tekrarın akış çizelgesi… Döngü sırasında
Örnek 2: Döngü sırasında tekrarlayın
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")
Programı çalıştırdığınızda, çıktı:
Seviye 0'ı geçtiniz Seviye 1'i geçtiniz Seviye 2'yi geçtiniz Seviye 4'ü geçtiniz Seviye 5'i tekrar ederken loop dışında geçtiniz
Yukarıdaki örnekte, ilk kez döngü içindeki ifadeler yürütülür. Ve bir sonraki yineleme için durumu kontrol eder currentLevel <= finalLevel
.
Koşul geri dönerse true
, while döngüsü içindeki ifadeler yürütülür, aksi takdirde döngü sona erer.
Yineleme | Koşul (currentLevel <= finalLevel) | Çıktı |
---|---|---|
1 | 0 <= 5 (doğru) | Seviye 0'ı geçtiniz |
2 | 1 <= 5 (doğru) | 1. seviyeyi geçtiniz |
3 | 2 <= 5 (doğru) | 2. seviyeyi geçtiniz |
4 | 3 <= 5 (doğru) | 3. seviyeyi geçtiniz |
5 | 4 <= 5 (doğru) | 4. seviyeyi geçtiniz |
6 | 5 <= 5 (doğru) | 5. seviyeyi geçtiniz |
7 | 6 <= 5 (yanlış) | döngü sırasında tekrarlamanın dışında |
Hem while
ve hem de repeat while
döngü aynı yürütme adımlarına sahip olsa da currentLevel <= finalLevel
, repeat while
döngüdeki koşul yalnızca içindeki ifadeler yürütüldükten sonra yürütülür.
Ama içinde while
, içindeki ifadeler çalıştırılmadan önce, koşul başlangıçta kontrol edilir.
3. Döngü sırasında Sonsuz
Test ifadesi hiçbir zaman sonuç vermezse, false
body while
and repeat… while
döngüsü sonsuz sayıda çalıştırılır.
Örnek 3: Sonsuz Döngü
while (true) ( print("Hello, World!") )
repeat ( print("Hello, World!") ) while (true)
Programı çalıştırdığınızda, çıktı:
Selam Dünya! Selam Dünya!…
Programı çalıştırdığınızda, her iki döngü de print("Hello, World!")
sonsuz sayıda ifade yürütür . Böylece, sürekli çıktı görebilirsiniz Merhaba, Dünya! konsolda.