Java Eğitimi 9- Java Kontrol Yapıları

WHILE DÖNGÜSÜ

Merhabalar,

Döngüler her programlama dillerinde var olan bir mantıktır. Hatta programlama dillerinin olmazsa olmazlarındandır. Çünkü program yazmak için her zaman ihtiyaç duyduğumuz mantıklardan oluşur. Bu sebeple döngüsel işlemlere sıkça başvururuz.

Peki döngüsel işlemler ne anlama gelir, amacı nedir? Döngüsel(tekrarlı) işlem; aynı işlem grubunu, belirlenmiş olan koşul sağlanana kadar tekrar tekrar yapmaya yönlendirir. Örneğin while döngüsü ile bir program yazdınız ve bunu çalıştırmaya başladınız. Koşulunuz sağlanıp while döngüsünün içine girdiyse işlem bitene kadar bilgisayar o işlemi yapmaya yönlendirir. Ancak koşulların tamamı bittiğinde döngüden çıkılır. Ya koşul başta sağlanmazsa, o zaman ne olacak? Tabi ki döngü içine giremeyiz ve herhangi bir işlem yapılmaz.

Java’da döngüleri while döngüsü, do-while döngüsü ve for döngüsü başlıkları altında toplayabiliriz. O halde ilk döngümüz olan while döngüsü ile ilgili bir örnekle konuya giriş yapalım.

 public class dongu {
public static void main(String[] args) {
int sayac=8;
while (sayac<16) {
System.out.println(sayac);
sayac++;
}
}
}

kodlarını yazdığımızda ekran çıktısı;

şeklinde olacaktır. Şimdi kodları tek tek inceleyerek while döngüsünün yapısını çıkaralım.

sayac” adlı bir değişken belirledik ve buna 8 değerini atadık. Yani sayac değişkeninin değerini 8 olarak başlattık. Daha sonra while yapısı ile sayac<16 koşulunu yazdık. Bu da sayac değişkeninin 16’dan küçük olduğu her durumda döngüye gireceğini belirtir. İlk durumda 8<16 olduğu için döngü içine girer ve döngünün içerisinde yer alan koşulları sağlamaya başlar. System.out.println(sayac); komutu ekrana sayac değerini yazdırmayı sağlar. Değerini de bir sonraki satırda yer alan sayac++; komutu belirler. sayac++ demek döngünün içerisine her girdiğinde sayac değişkeninin değerini bir artır anlamına gelir. 8 değeri döngünün içine girmişti. Artırma işleminden önce yazdırma işlemi olduğu için ekran çıktısında ilk önce 8 yazar. Daha sonra bir alt satıra geçer, 8 değeri bir artırılarak 9 olur ve döngüden çıkılır. Yeni değerimiz 9. 9<16 olduğu için tekrar döngünün içine girebiliriz. System.out.println(sayac); komutu ile karşılaştığımız için ekrana 9 yazdırılır. sayac++; komutu ile birlikte mevcut sayac değerimiz 10 olur. 10<16 olduğu için döngüye giriş yapabiliriz ve bu işlem 16’dan küçük olan her sayı için tekrarlanır. sayac değerinin 15 olduğu duruma da bakalım. 15<16 koşulu sağlandığı için döngünün içinde yer alan komutla birlikte ekrana 15 yazılır. Bir sonraki satırda değerimiz 16 olur. Programın başına döneriz. 16<16 koşulu sağlanamadığı için döngü burada sona erer ve ekran çıktısı biterek program tamamlanmış olur. While döngüsünün yapısı ise şu şekildedir;

 while (koşul) { 
//komut 1
//komut 2
//...
//komutlar
}

Faktöriyel hesabı yapan bir program yapmaya çalışalım. 1’den başlayarak n’e kadar olan pozitif tam sayıların çarpımı “faktöriyel” olarak tanımlanır. n! şeklinde gösterilir. Bu yüzden integer ile tanımlamış olduğumuz faktoriyel değişkeninin ilk değerini 1’e eşitleyerek programa başlarız. Aynı şekilde carpan değişkenini de 1’e eşitleriz. Döngü koşulu için carpan değişkeni 14’ten küçük eşit olsun diyelim. Faktöriyel hesabı faktoriyel=faktoriyel*carpan ile hesaplanır.

public static void main(String[] args) {
int faktoriyel=1;
int carpan=1;
while(carpan<=14) {
}
}

Sıra geldi while döngüsünün içine komutları yazmaya. İlk olarak faktöriyeli hesapladığımız formülü yazalım. Daha sonra ekran çıktısında görmek üzere System.out.println(carpan+”!= “+faktoriyel); komutunu ekleriz. Son olarak carpan faktöründe artırım yapmak için carpan++; ekleyerek programı bitiririz.

Örneğin 1’in faktöriyeli= 1*1=1 olur. Sonrasında carpan++’dan carpan değeri 2 olur. Faktöriyelin yeni değeri=1*2=2 olur. Bu değer 2! olarak karşımıza çıkar. O şekilde ekran çıktısını elde ederiz.

 public class faktoriyel { 
public static void main(String[] args) {
int faktoriyel=1;
int carpan=1;
while(carpan<=14) {
faktoriyel=faktoriyel*carpan;
System.out.println(carpan+"!= "+faktoriyel);
carpan++;
}
}
}

Bir sonraki yazımda görüşmek dileğiyle. Hoşça kalın.

Yorum bırakın