Modern programlama dillerinin hepsinde for-each kavramı benimsenmiş ve programcıların gereksinim duyduğu standart bir özellik haline gelmiştir. For-each olarak bildiğiniz bu döngü javada bulunmamaktadır. C# gibi dillerin aksine Java, for-each döngüsünün yaptığı işi, for döngüsü içerisine entegre etmiştir. Yani Java’da bu döngünün gerçekleştirdiği işlemler for döngüsünün gelişmiş bir versiyonu tarafından yerine getirilir. Özel for olarakta adlandırılan bu yapı, dizi ve koleksiyon tabanlı nesneler üzerinde, baştan sonra kadar ilerleyen sıralı bir döngü oluşturmak için tasarlanmıştır.
Gelişmiş for döngüsünün genel biçimi aşağıdaki gibidir.
for (tip degisken: koleksiyon)
{
// ifade bloğu
}
Burada dikkat edilmesi gereken nokta koleksiyonda ya da dizide yer alan verinin tipiyle değişkenin tipinin birbiriyle uyumlu olmasıdır.
Aşağıdaki örnek, konunun anlaşılması açısından yeterli olacaktır. Dizinin tüm elemanlarını toplayarak sonucu ekranda gösteren basit bir uygulama yapalım.
1 2 3 4 5 6 7 |
public static void main(String[] args) { int sayilar[]={5,11,56,23,14,2}; int toplam=0; for(int x:sayilar) toplam+=x; System.out.println("Toplam="+toplam); } |
Yukarıdaki kodlamada x değeri sırasıyla 5,11,56,23,14 ve 2 değerlerini alır. Bu değerler sırasıyla toplam değişkeninin üzerine eklenir ve sonuç elde edilir.
For-each stili döngü hakkında anlaşılması gereken önemli bir nokta vardır. Yukarıdaki örnekten yola çıkarsak; x iterasyon değeri üzerinde yapılan işlemler döngü yapısını ve dizi değerlerini etkilemez.
1 2 3 4 5 6 7 8 9 |
public static void main(String[] args) { int sayilar[]={5,11,56,23,14,2}; int toplam=0; for(int x:sayilar){ toplam+=x; x+=10; } System.out.println("Toplam="+toplam); } |
Yukarıdaki örnekte x+=10 ile x iterasyon değeri her seferinde 10 arttırılmış fakat çıkan sonuç değişmemiştir.
Not: Özel for döngüsü, dizide ki tüm elemanlar işlenene kadar iterasyon yapsa da, döngüyü bir break ifadesiyle sonlandırmak mümkündür.
For each döngüsü özellikle koleksiyon elemanlarına ulaşmak için tercih edilse de, sırasız dizi elemanlarına ulaşmak içinde sıklıkla kullanılır. Son bir örnek ile konuyu bitirelim. Aşağıdaki örnek sırasız bir dizi içerisinde aranan değerin bulunup, bulunmadığını kontrol eder. Değer bulunursa döngü durur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public static void main(String[] args) { int nums[]={7,3,12,4,14,4,1,8}; int aranan=4; boolean durum=false; for(int x:nums){ if(x==aranan) { durum=true; break; } } if(durum) System.out.println("Değer bulundu."); else System.out.println("Dğer bulunamadı."); } |
Çok açıklayıcı ve anlaşılırdı teşekkürlerr
Eline emeğine sağlık cok guzel sade ve aciklayici anlatmisiniz