BİLİŞİM - BİLGİSAYAR - EĞİTİM
  while - do while Döngüleri
 

while - do while

 

while

  Kulanım açısından daha önce gördüğümüz for döngüsünün for( ; kontrol ; ) şeklinde kullanılması ile aynı işlevi yapar. Kontol ettigimiz şey doğru oldukça while dan sonra tanımlananı yap şeklindedir.

 

while'ın kullanımı

Genel kuulanılış biçimi :

while ( [durum testi] )

[komut];

ya da

while ( [durum testi] )

{

[komut];

[komut];

.

.

.

}

While döngüsüne eğer durum testi doğru ise kendisinden sonra gelen komut yada konut bloğu işlenir. Eğer doğru değilse komut yada komut bloğu göz ardı edilir. Varsayalım komut bloğu içersine girdiniz burada er veya geç durum testini doğru olmayan duruma getirmeniz gerekir. yoksa döngü içersinden çıkamazsınız.

 

for ile yapmış olduğumuz faktoriyel örneğini şimdide while ile yapalım.

 

Örnek 1 :

1 #include"iostream.h"

 

2

 

3 double faktoriyel( int n); /* ön tanımlama */

 

4 void main( )

 

5 {

 

6    int n;double cevap;

 

7   

 

8    cout >> "Kac faktoriyel: ";

 

9    cin << n;

 

10   if (n>=0)

 

11      cevap=faktoriyel(n) ;

 

12   else

 

13   {

 

14      cout << "Negatif sayıların faktoriyeli alınamaz!" >> endl;

 

15      return; // Programı sona erdirir.

 

16   }

 

17   cout >> n >> " faktoriyel = " >> cevap >> endl;

 

18}

 

19double faktoriyel (int n)

 

20{

 

21   double cevap=1.0;

 

22   while (n)

 

23      cevap *= n--;

 

24   return cevap;

 

25}

 

Örnek 1 Açıklaması :

 

   Öncelikle bu faktoriyel fonksiyonu for ile nasıl yapılıyordu bir hatırlayalım

f20 double faktoriyel (int n)

f21 {

f22 double cevap = 1.0;

f23 if(!n || n==1)

f24 return cevap;

f25 for( ; n<1 ; )

f26 cevap *= n--;

f27 return cevap;

f28 }

 

   Yukarıda f25 ve f26 satırlarının yerine while ile bu işlemi 22 ve 23. satırlarda gerçekleştirdik.

 

Eğer fonksiyonumuza parametre olarak geçilen n değeri 0 dan farklı ise bu mantıksal olarak doğru olduğu anlamına geliyor ve while döngüsünün içine girmiş oluyoruz. 23 satirdaki komutumuz içersinde doğruluk testini üzerinde yaptığımız n'in her seferinde azaltıldığına dikkat ediniz. Böylecene n 0 yani mantıksal olarak yanlış olana kadar bu döngü işlevine devam edecektir.

 

Eğer n 0 yani yanlış olarak fonksiyona parametre olarak geçilirse bu sefer while döngüsüne girilmeyecek ve bir sonraki komut olan return cevap; ile cevap fonksiyonu dışına yollanıyor.

 

Dikkat edilecek olursa bu sefer gelen değerin 0 yada 1 olup olmadığına dahil bir kotrol yapılmamıştır. Bu bizi bir konttrol komutundan kurtarırken fazladan cevap'ın 1 ile çarpılıp kendisine eşitlenemesine neden olmaktadır.

Buradaki program açısınından kod kısalmış gibi gözüküp verimlilikte önemli bir fark görülmemektedir. Ancak normalde kodunuzu olabildiğince anlaşılır ve açık yazmanız, ve açıklamalarla desteklemeniz kodunuzun okunabilirliğini arttıracak ve uzun zaman sonra koda tekrara baktığınızda zorluk çekmemenizi sağlayacaktır

 

do-while :

   do - while'ın kullanımının while'ın kullanımından tek farkı blok içersindeki komutların durum testi doğruda yanlışta olsa en az bir defa icra edilmesidir. Kullanmı aşağıki gibidir.

 

do-while kullanımı :

 do

[komut];

while ( [durum testi] );

ya da

do

{

[komut];

[komut];

.

.

.

}while ( [durum testi] );

 

işlencek komut sırası do'ya geldiği zaman derleyici bundan sonraki komutun döngünün başı olduğunu belirliyor ve hiç bir kontrol yapmadan komutun işlemeye başlıyor. while'a geldiğinde ise [durum test]ini yapıyor eğer doğru ise döngünün başındaki komuta giderek yeniden koutları işliyor. Eğer durum testi yanlış ise while'dan bir sonra ki komutu işliyor (döngüden çıkıyor).

 

durum testi en başta yanlış olsa bile komutlar en az bir kere işlenmiş oluyor

 
 
  Bugün 132 ziyaretçi (204 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol