Koşullu bir döngü. while
ifadesi
for
döngüsünü inceleyerek, herhangi bir eylemin tekrar sayısı biliniyorsa,
for
döngü operatörünü kullanarak programı kısaltabileceğinizi söyledik. Peki ya tekrar sayısı bilinmiyorsa? Ve bu oldukça sık olur.
Örnek
Bir sayının ondalık sayı sisteminden herhangi bir başkasına çevrilmesini hatırlayarak, yanıtta sıfır elde edene kadar sayıyı (ve ardından bölme sonucunu) sayı sisteminin tabanına bölmemiz gerekir. Daha kaç kez paylaşacağız bilinmez. Ve böyle bir algoritma uygulayan pek çok program var.
Yinelemelerin tam sayısını bilmiyorsak algoritmayı nasıl uygulayabiliriz?
Programlamada bu tür durumlar için koşullu bir döngü ifadesi vardır.
Python programlama dilinde bir koşullu döngü ifadesi
while
kelimesiyle başlar ve aşağıdaki yapıya sahiptir.
while (<condition>)
{
döngü gövdesi
}
Zaten bildiğimiz gibi:
-
koşul, doğru veya yanlış olarak değerlendirilebilen bir ifadedir (bir koşullu ifadede olduğu gibi);
-
döngü gövdesi tekrarlanacak komutlardır, girintilidirler.
Operatör nasıl çalışır?
1. Program ilk olarak
while
kelimesinden sonraki durumu parantez içinde değerlendirir. Koşul karşılanırsa (true), program döngü gövdesinde bulunan ifadeleri yürütür.
2. Döngü gövdesinin yürütülmesi tamamlandıktan sonra, program durumu kontrol etmek için geri döner ve tekrar kontrol eder.
3. Bu işlemler (koşulun kontrol edilmesi - döngü gövdesinin çalıştırılması), koşul yanlış olana kadar tekrarlanır.
4. Bu ifadenin ilk çalıştırılması sırasında koşul hemen karşılanmazsa (yanlış), program hiçbir zaman döngü gövdesini yürütmez.
Bu operatörün çalışması analiz edildiğinde, döngü gövdesinin koşulu etkileyen bir operatör içermesi gerektiği anlaşılmalıdır.
Örneğin, bir döngüde, bir koşulda kullanılan bir değişkenin değeri artırılabilir.
"Sessiz sayım" olarak adlandıracağımız bir program örneği.
Programı bizim yerimize saydıralım mesela 10'a kadar.
Program, "
Başlat
" ve "
Bitti
" ve bu işlemler arasında hesaplanmakta olan sayıları görüntüler.
Örneğin, şöyle:
Başlat
1 2 3 4 5 6 7 8 9 10
Bitir
while
döngüsü kullanan bir program şöyle görünür:
Sistemi kullanarak;
sınıf Programı {
statik boşluk Ana() {
Console.WriteLine("Başlat");
int ben = 1;
iken (i <= 10) {
Console.WriteLine(i);
ben++;
}
Console.WriteLine("Bitir");
}
}
Bu programda, başlangıç noktası olan i = 1
değişkenine bir değer atadık.
Ayrıca, i
değişkeninin değeri ihtiyacımız olan değerden büyük (yani, ondan küçük veya ona eşit) olmadığı sürece:
1) i
değişkeninin değerini göster;
2) i
değişkeninin değerini 1 artır - bu operatör, koşulun parantez içindeki değerini etkiler. i
değişkeni artırılır, yani bir noktada i <= 10
koşulu yanlış olur. Bu, i
11
'e eşit olduğunda gerçekleşir. Bu durumda, döngü gövdesi artık yürütülmeyecek ve program döngüden sonraki ifadeyi, yani Console.WriteLine("Finish")
'ı yürütecektir.