Sponsor Reklam 


26.12.2008 (07:40)

 While ve Do Kullanımı 
for döngüsünden ve continue, break kullanımlarından daha önce şu yazıda bahsetmiştik. for'dan başka bir döngü-iterasyon ifadesi de while'dır.

Bir eşitlik veya eşitsizlik olduğu sürece tarzı ifadelerde while, bir eşitlik veya eşitsizlik olana kadar ifadeleri için de do-while yapısı kullanılmaktadır.

while örneği şu şekildedir:

int x = 100;
while (x > 95) {
  System.out.println(x);
  x--;
}

x'in 95'ten büyük olduğu her adım için ekrana x değeri yazdırılmakta ve değeri 1 azaltılmaktadır. Ekran çıktısı şu şekilde olacaktır:

100
99
98
97
96

x'in aldığı son değer ise 95 olacak ve döngüye giremeyecektir.

do-while örneği ise şu şekildedir:

int x = 100;
do {
  System.out.println(x);
  x--;
} while (x > 95);

Burada da aynı ekran çıktısını elde edeceğiz. Buradaki tek fark ilk işlemin muhakkak yapılıyor olmasıdır. Yani her iki ifade de x > 100 şartı olsaydı birinci durumda ekrana hiçbir şey yazılmazken ikincide 100 yazılacaktı.

do-while'ın kullanım yeri genelde kullanıcıdan belirli seçeneklerin seçilmesi istendiğindedir. Örnek olarak
Hangi işlemi yapmak istiyorsunuz?
1: işlem 1
2: işlem 2
3: işlem 3
4: işlem 4
5: programdan çıkış
diğer: tekrar sor
gibi bir menü seçme veya çıkma programında 1 tuşu ile birinci işlem yapılırken 5 tuşu ile programdan çıkış yapılmaktadır. Yer almayan her tuş için de tekrar soru sorulmaktadır.

Burada eğer while kullanırsak kullanıcı daha bir tuşa basmadığı için karşılaştıracak bir değerimiz yoktur. Bu nedenle
package kodcu.net;

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

  public static void main(String[] args) throws IOException {

    // System.in araciligi ile konsoldan girilenleri alalim
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    while (br.read()!='5') {
      System.out.println("Hangi işlemi yapmak istiyorsunuz?");
      // diğer yazılar
      // ve işlemler
    }


  }

}
gibi bir karşılaştırma yapamayız.

Oysa kullanıcı mutlaka bir değer girmek zorunda olduğu için do-while ile karakter okuması yapılıp 5'e eşit olup olmadığı karşılaştırılabilir. Değilse do-while biter ve programdan çıkılır.
package kodcu.net;

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

  public static void main(String[] args) throws IOException {

    // System.in araciligi ile konsoldan girilenleri alalim
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    do {
      System.out.println("Hangi işlemi yapmak istiyorsunuz?");
      // diğer yazılar
      // ve işlemler
    } while (br.read() != '5');

  }

}
Bu kullanım böyle ilk sefer mutlaka yapılması gereken işlemler için daha uygundur.

Kodlarda yer alan konsoldan karakter okuma ile ilgili bilgi için şu yazıya göz atabilirsiniz.
Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter