For döngüsü yazısında belirttiğim
gibi çoğu zaman yaptığımız işler tekrar eder ve bu tekrar eden işlemler için
döngü yapılarını kullanırız. Eğer işlemin kaç defa tekrar edeceğini
biliyorsanız for döngüsü kullanmak çoğu zaman daha kolaydır.
Bazı durumlarda ise tekrar sayısı
önceden bilinmez. Örneğin bir dersi alan öğrencilerin dönem sonu notlarını
hesaplatmanız gerek ama o dersi kaç öğrencinin aldığı belirsiz; bir dosyadaki
değerleri okutup toplamını bulmalısınız ama dosyada kaç sayı olduğu bilinmiyor!
Bu ve benzeri durumlar ile çoğu
zaman karşılaşırız, döngümüz önceden belirli olan bir değerde değil belirli bir
koşul sağlandığı sürece tekrar eder. While döngüsü bu durumlarda bizim
kurtarıcımızdır çünkü yapısı gereği belirli bir koşul sağlandığı sürece tekrar
eder.
Genel Kullanımı;
While (Koşul) {
// Tekrarlanacak kodlar
}
Belirttiğimiz koşul sağlandığı yani true(olumlu) sonucunu ürettiği sürece döngümüz işlemlerimizi
yapmaya devam edecektir. Bu koşul bazen 3 defa sağlanır bazen 30000 defa tekrar
eder.
While döngüsü ile for döngüsünün en önemli farkı artışı belirtilen
bir değerin olmamasıdır, döngü değişkeninin artması veya azalmasını siz kontrol
edersiniz. Eğer bu duruma dikkat etmezseniz Sonsuz Döngü adını verdiğimiz hata oluşur, döngüden hiç çıkılmaz ve
yazdığınız program kilitlenir!
Örnek: 1’den 10’a kadar olan sayıların toplamını bulup
görüntüleyelim.
Yukarıda görülen örnekte döngü koşulumuz $sayi değişkeninin 10’dan
küçük veya eşit olması, $sayi değişkeninin ilk değeri olan 1 bu koşulu
sağladığı için koşulumuz true
sonucunu verir ve döngü işlemeye başlar.
Döngü içinde önce
$sayi değişkeninin o anki değerini yazdırıyoruz.
İf ile yaptığımız kontrolde amacımız şudur; eğer $sayi
değişkeninin değeri 10’dan küçük bir değer ise değeri yazdıktan sonra toplama
işlemi için + operatörünü yazdıracağız. Eğer $sayi nin değeri 10 ise zaten
toplayacağımız sayılarımız bitmiştir = operatörünü yazdırıp toplam değerinin
görüntüleyeceğiz bu nedenle bu kontrol gösterim için önemlidir.
$sayi değişkeninin son değeri ile $toplam değişkeninin
değerini toplayıp sonucu $toplam değişkeninde topluyoruz. Aslında $toplam+=$sayi;
ile $toplam=$toplam+$sayi; aynı anlama gelir ama daha kısa olan yazımı tercih
edelim.
$sayi++; ile $sayi değişkeninin
değerine +1 ekliyoruz. İşte bu kod önemli çünkü bu kodu unutursak $sayi
değişkenin değeri teorik olarak sonsuza kadar aynı kalacak ve döngümüzden hiç
çıkılamayacaktır! Bu kod aynı zamanda döngümüzün tekrar sayısını da kontrol
etmemizi sağlar.
Döngüden çıktıktan sonra =
operatörünü ve toplam değerini yazdırıyoruz.
Örnek: Değerleri 1 – 250 arasında değişen 25 rastgele sayı üretip
görüntüleyelim.
Yukarıda görülen örnekte döngü koşulumuz $sayac değişkeninin
25’den küçük olması, $sayac değişkeninin ilk değeri olan 0 bu koşulu
sağladığı için koşulumuz true
sonucunu verir ve döngü işlemeye başlar.
$sayi=rand(1,250); ile değeri 1 ile 250 arasında değişen
rastgele bir sayı üretip bu sayıyı $sayi değişkenine aktarıyoruz.
$sayac++; ile değişkenin değerini 1 artırıyoruz böylece kaç
sayı ürettiğimizi kontrol edebileceğiz.
While
döngüsünün önemli bir özelliği vardır, bu döngü koşula bağlı olduğu için bazen
bu koşul HİÇ sağlanmaz ve bu nedenle while döngüsü hiç işletilmez. Yukarıda belirtilen
örnekte döngü koşulu $x değişkenin değerinin 5’ten küçük olmasıdır oysa $x
değişkeninin başlangıç değeri 8’dir ve 8>5 olduğu için bu koşul sağlanmaz ve
program akışı 10. Satırdan devam eder. Bu örnekte tarayıcı ekranında hiçbir şey
görmeyeceğiz.
Bu
bilgi dikkate alınarak while döngüsü yazılmalıdır.
While
döngüsünün farklı bir türevi olan do – while döngüsü ile ilgili olarak bir
noktayı vurgulamak istiyorum.
Do {
// Tekrarlanacak kodlar
} While (Koşul);
Do –
while döngü yapısını incelediğinizde koşul kontrolünün döngünün sonunda
yapıldığı dikkatinizi çekmiştir. While döngüsünde daha döngüye girmeden yapılan
kontrol do – while döngüsünde sonda yapılmaktadır ve bu durum basit bir yer
değişimi değildir! Vurgulamak istediğim nokta şu; program akışı yukarıdan
aşağıya satır satır işletilir do – while döngüsünde tekrarlanacak kodlar EN AZ
1 defa çalıştırılır ve sonra koşul kontrolü yapılır eğer koşul sağlanırsa tekrar
edilmeye devam eder.
Önceki örneği do – while ile tekrar yazıp sayfayı
görüntülediğimizde ise ekranda
Değerini görürüz. $x değişkeninin başlangıç değeri olan 8 koşulu
sağlamasa da kodlar 1 defa çalıştırılır 8 değeri ekranda görüntülenir; $x++ ile
değeri +1 artırılıp 9 olur sonra koşul kontrolü yapılır ve program akışı 10. Satırdan
devam eder!
Bu nedenle do – while döngüsü yazılırken daha dikkatli
olunmalıdır!
Kolay gelsin…
Hiç yorum yok:
Yorum Gönder