Bir önceki yazımız Java’da Kontrol İfadeleri – 1 konusunda Java’da kullanılan Kontrol İfadeleri’nden Seçim İfadeleri‘nin neler olduğunu görmüştük. if yapısı ve switch yapısını daha ayrıntılı görüp, örneklerle pekiştirmiştik. Bu yazımızda ise Kontrol İfadeleri’nden İterasyon ve Sıçrama ifadelerini inceleyip konumuzu tamamlayacağız.
Java’da İterasyon İfadeleri
Java’daki iterayon ifadeleri döngüler oluşturmak için kullanılırlar. Bir döngü, belirli bir sonlandırma koşulu sağlanana kadar işlemleri tekrar etmektir. for, while ve do-while yapılarını kullanarak döngüler oluşturabiliriz.
for Döngüsü
Programlamada for döngüsü her dilde vazgeçilmezdir. Belirli bir ilk değerden, yine belirli bir sonlandırma ifadesine ulaşıncaya kadar artırma veya azaltma işlemi yaparak for döngümüzü oluşturabiliriz. Örneğin ekrana alt alta dizilmiş 10 adet yıldız (*) karakteri yazdırmak istiyoruz. Basit bir for döngüsü kullanarak hızlıca oluşturabiliriz.
// Created by MuhammedTutar | 2014 public class ForDongusu { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("*"); } } }
for döngüsünün içinde tanımladığımız i değişkeni bizim başlangıç değerimiz. Noktalı virgülden sonraki kısımda ise i < 10 ifadesi sonlandırma koşulumuz. Üçüncü ifade ise i değişkeninin birer birer artacağını gösteriyor. Dolayısıyla i değişkeni 0’dan 10’a kadar birer birer artarken her artışta döngünün içi çalışıyor. Böylece on adet yıldız karakterimiz ekranda sıralanıyor.
Şimdi ekrana yıldızlarla oluşturulmuş 10*10 boyutunda bir kare çizdirelim:
// Created by MuhammedTutar | 2014 public class ForYildiz { public static void main(String[] args) { int k,i; for (k = 0; k < 10; k++) { for (i = 0; i < 10; i++) { System.out.print("*"); } System.out.println(); } } }
Bu örnekte döngü içinde kullandığımız değişkenleri dışarıda tanımladık. Dolayısıyla döngüleri kontrol etmek için kullanacağımız değişkenleri topluca en başta tanımlamak da mümkün, hepsini tek tek döngü içinde tanımlamak da mümkün.
for-each Kullanımı
foreach yapısı programcıların çoğunlukla kullandığı, standart haline gelmiş yapılardan biridir. Bir dizi içerisindeki verileri sıralı bir şekilde döngüye sokmak için tasarlanan bu yapı diğer dillerdeki foreach anahtar sözcüğü ile kullanılıyor olsa da Java’da for döngüsünün gelişmiş bir versiyonu olarak tanımlanmıştır. Bir örnekle bakalım:
// Created by MuhammedTutar | 2014 public class ForEach { public static void main(String[] args) { int dizi [] = {1,2,3,4,5,6,7,8,9,10}; for(int x : dizi){ System.out.println(x); } } }
Görüldüğü gibi for döngümüz iki değer aldı. Birinci değer değişken, ikinci değer dizimizin ismi, aralarında onları ayıran iki nokta (:) operatörü. Bu programın yaptığı işlev dizinin ilk elemanından son elemanına kadar sırayla her değeri x değişkenine atayıp ekrana yazdırmak. Böylece 1’den 10’a kadar tüm rakamlar ekran çıktımızı oluşturuyor.
while Döngüsü
En temel döngü ifadelerimizden biri de while döngüsüdür. Bir kontrol deyimi doğru olduğu sürece bir bloğun çalıştırılması while döngüsü kullanarak gerçekleştirilir. Bu kontrol deyimi herhangi bir boolean ifade olabilir. Bu deyim false olduğunda while döngüsü tamamlanmış olur. Örneğin;
// Created by MuhammedTutar | 2014 public class WhileYapisi { public static void main(String[] args) { int a = 0; while (a<10){ a=a+1; System.out.println(a); } } }
Bu örnekte tanımlanan bir a değişkeni en başta sıfır olarak belirlenmiş. While döngüsüne girildiği an a değişkeni kontrol ediliyor. 10’dan küçük olduğu için de döngüye giriyor. Eğer koşul false çıksaydı döngüye hiç girilmeden atlanacaktı. Programımız her seferinde a değişkenini 1 artırarak ekrana yazıyor. Bu programın sonucu görüldüğü gibi 1’den 10’a kadar rakamlar.
do-while Yapısı
while döngüsünde bahsettiğimiz üzere ilk olarak koşul kontrol ediliyor. Eğer false ise gövde hiç çalıştırılmadan atlanıyor. Ama bazen koşulumuz false olsa bile döngü gövdemizin bir kerelik çalışmasını isteyebiliriz. Bunun için ise do-while yapısını kullanırız.
do-while yapısının temel mantığı şudur: Blok içerisindeki işlemi gerçekleştir, sonra döngü koşuluna bak. Eğer koşul true ise blok içerisindeki kodu tekrar çalıştır, bir daha koşula bak. Böylece önce kod bloğumuz çalışır, sonra döngü koşulumuz kontrol edilir. İşte bir örnek:
// Created by MuhammedTutar | 2014 public class DoWhile { public static void main(String[] args) { int x = 10; do { System.out.println(x); x--; } while (x>0); } }
Bir önceki kodumuzda 1’den 10’a kadar yazdırırken şimdi de 10’dan 1’e kadar do-while kullanarak yazdırmış olduk. Bu yapı özellikle menü oluşturmak istediğimizde faydalı olmakta. Çünkü menü döngüsünde gövdenin en az bir kere çalışması gerekir.
Döngülerde Gövde Olmalı mı?
Döngülerde hep bir gövde bloğundaki kodları çalıştırdık. Fakat böyle olmak zorunda değil. Nasıl mı?
// Created by MuhammedTutar | 2014 public class GovdesizDongu { public static void main(String[] args) { int a = 0; int b = 100; while(++a < --b); System.out.println("Orta nokta:" +a); } }
Orta nokta bulma programı gövdesiz döngüler için güzel bir örnek. Görüldüğü gibi bu program 0 ile 100 sayılarının orta noktasını ekrana yazıyor. while döngüsünün bir gövdesi yok. Orta noktayı bulana kadar a değeri artırılıp b değeri azaltılıyor. Koşul false olduğu anda döngüden çıkılıyor ve en son bulunan a değeri ekrana yazılıyor.
[alert style=”red”]! Yani döngülerin hiçbirinde bir gövde bulunmak zorunda değil ![/alert]
Sıçrama İfadeleri
Java’da üç tane sıçrama ifadesi var. return, continue ve break.
break ifadesi switch yapısında kullandığımız bir ifadeydi. Bunun yanı sıra döngüleri herhangi bir anda kesmek için de kullanılabilir. Acil durumlarda döngüyü bir anda bitirmek için break kullanırız.
// Created by MuhammedTutar | 2014 public class Break { public static void main(String[] args) { int x = 20; for (int i = 0; i < 30; i++) { if (i > 20) break; System.out.println(x); x--; } } }
Bu program 20’den 0’a kadar sayıları ekrana yazıyor fakat döngü 30’a kadar gidiyor. 0’dan daha küçük bir sayı görmek istemediğimiz için araya bir if yapısı ekleyerek i değişkenini kontrol ettirdik. Böylece 20’den büyük olduğunda break ifadesiyle döngüden çıkmış olduk.
continue ifadesi Java’da çok sık kullanılmayan bir ifadedir. Zaten oldukça kullanışlı ve gelişmiş döngü çeşitliliği varken continue pek gereksiz kalmıştır. Ama bazı kullanışlı olduğu noktalar da mevcut. Bir örnek yeterli olacaktır:
// Created by MuhammedTutar | 2014 public class Continue { public static void main(String[] args) { for (int i = 0; i < 20; i++) { System.out.println(i); if (i%2 == 0) continue; System.out.println(" "); } } }
Burada döngü içerisinde i değişkeni her çift sayı olduğunda bir satır boşluk bırakılıyor. Böylece 20’ye kadar sayılar ikili olarak sıralanmış oluyor.
return ifadesi ise en sık karşılaşacağımız sıçrama ifadesi. Özellikle geri dönüş değeri olan her metodun sonunda return kullanacağız. return ifadesi programın akışını çağırıcıya tekrar geri devreder. Mesela aşağıdaki programda ikinci println() metodu hiçbir zaman çalışmaz:
// Created by MuhammedTutar | 2014 public class Return { public static void main(String[] args) { boolean d = true; System.out.println("Merhaba return."); if (d) return; System.out.println("Ben yüzünden çalışmam."); } }
Burada d değişkeni true olduğu için if yapısının bulunduğu satıra gelindiğinde return komutu çalışacak ve program en başa geri dönecek. Alttaki println() ise çalışmayacak. return ifadesini metotlarda sıkça kullanarak daha iyi anlayacağız.
[alert style=”red”]! continue ve break çok da önemli değil. Nadir kullanılır. Ama return, her yerde olabilir! [/alert]
Bu yazıda Java’da kullanılan Kontrol İfadeleri’nden İterasyon ve Sıçrama İfadeleri’nin neler olduğunu görmüş olduk. for döngüsünü, while döngüsünü ve sıçramaları örneklerle pekiştirdik. Bir sonraki yazıda ise Eclipse Kullanarak Java Projesi Oluşturma konusunu ele alacağız.
[…] önceki yazımız Java’da Kontrol İfadeleri – 2 konusunda Java’da kullanılan Kontrol İfadeleri’nden İterasyon ve Sıçrama […]
[…] Java’daki iterayon ifadeleri döngüler oluşturmak için kullanılırlar. Bir döngü, belirli bir sonlandırma koşulu sağlanana kadar işlemleri tekrar etmektir. for, while ve do-while yapılarını kullanarak döngüler oluşturabiliriz.Okumaya devam et… […]
[…] önceki yazımız Java’da Kontrol İfadeleri – 2 konusunda Java’da kullanılan Kontrol İfadeleri’nden İterasyon ve Sıçrama […]