Site icon Mobilhanem

Temel Java Dersleri – Diziler ile Foreach Döngüsü Kullanımı

Anotasyon

Java Dersleri

Merhaba arkadaşlar,
Mobilhanem.com sitemizden anlattığımız/yayınladığımız Temel Java Derslerine bu dersimizde  diziler ile foreach döngüsü kullanımı ile devam ediyoruz. Bir önceki dersimiz de tek boyutlu dizilere giriş yapmıştık ve dizi nasıl tanımlanır, nasıl değer atanır ve değerler nasıl okunur açıklamaya çalışmıştık.

Bu dersimizde ise diziler ile döngülerin kullanımından , özelliklede foreach döngüsünden bahsedeceğiz. Biz önceki derslerimizde döngü kullanımını anlatmıştık ve örnekler vermiştik. Döngü kullanımı hakkında dersimizi buradan ulaşabilirsiniz. Bu dersimiz de diziler ile kullanımından bahsedeceğiz. Aslında javada foreach adında bir döngü çeşidi bulunmamaktadırForeach döngüsü c#, php gibi dillerde kullanılmaktadır. Ama for döngüsünün diziler ile birlikte normal for döngüsünden farklı yapıda kullanılmasına foreach adı verilmektedir.

Öncelikle bir dizinin uzunluğu nasıl alınır onu inceleyelim.

Diziler length kullanımı:

Bir dizi oluşturulduğu an dizinin uzunluğu length değişkenine atanır. Aşağıdaki örnek ile daha net bir şekilde anlayacağız.

int[] sayi = new int[10];
System.out.println(sayi.length);

Konsol Çıktısı: 
10

Gördüğünüz gibi sayi adında uzunluğu 10 olan bir dizi tanımladık ve biz bu diziyi oluşturur oluşturmaz o diziye ait bir length değişkenine o dizinin uzunluğu atanıyor. Ve biz istediğimiz zaman diziReferans.length şeklinde dizinin uzunluğunu öğrenebiliriz. Aşağıda bir örnek daha veriyorum.

int [] sayi = {100,200,300,400,500,600,700,800,900,1000};
System.out.println(sayi.length);

Konsol Çıktısı: 
10

Diziler for döngüsü kullanımı:

Dersimiz forach döngüsü kullanımı , ancak dizilerin for döngüsü ile kullandımdan da bahsetmemiz gerekiyor. Anlatımı örnekler üzerinden yapacağım.  Gelelim örnek kullanımlara:

Dizinin tüm elemanlarına 1-100 arasında random değerler atama.

int [] sayi = new int[10];//uzunluğu 10 olan diziyi oluşturduk

for (int i = 0; i < sayi.length ; i++) {
    sayi[i] = (int)(Math.random()*100); //tek tek değer atıyoruz
}

Atadığımız bu değerleri ekrana yazdıralım:

for (int i = 0; i < sayi.length ; i++) {
    System.out.println(sayi[i]); // Tüm değerleri tek tek yazdırıyoruz
}

Şimdi küçük bir örnekle for döngüsünü pekiştirelim.
Örnek: Uzunluğu 100 olan int bir diziye önce 1-999 arasında random değerler atayalım. Sonra atadığımız bu değerler arasında en büyük olan sayıyı ve o sayının dizideki index’ini bulalım.

public class MaxSayi {
    public static void main(String args[]){

        int [] sayi = new int[100]; //Uzunluğu 100 olan diziyi oluşturduk

        for (int i = 0; i < sayi.length ; i++) {
            sayi[i] = (int)(Math.random()*1000); //Tüm elemanlarına 0-999 arasında değerler atıyoruz
        }

        int index = 0; //başlangıç değerleri
        int max = 0; //başlangıç değerleri

        for (int i = 0; i < sayi.length ; i++) { 
            if(sayi[i] > max){ //max sayıdan büyük ise
                max = sayi[i]; //max sayı değiştiriliyor
                index = i; //ve index alınıyor
            }
        }
        System.out.println("En büyük sayı: "+max+" index: "+index);
    }

}

Diziler foreach döngüsü kullanımı:

Yazının başında da belirttiğim gibi aslında Java’da foreach adında bir döngü çeşidi bulunmamaktadır. Foreach , C#, Php, Javascript gibi dillerde kullanılmaktadır. Java’da ise for içinde( ancak bu dersimize kadar kullandığımız for yapısından farklı bir şekilde )kullanılmaktadır. Yine nasıl kullanıldığını örnekler üzerinden anlatacağım.

Dizi değerlerini okuma:

public class ForeachDongu {
    public static void main(String args[]){

        int [] sayilar = {100,200,300,400,500,600,700,800,900,1000}; //dizi tanımlanıyor
        for (int sayi : sayilar) { //sayılar dizisinin değeri tek tek sayi değişkenine atanıyor
            System.out.print(sayi+" ");//Yan yana yazdırmak için .println yerine .print kullandık

        }
    }

}

Konsol Çıktısı:
100 200 300 400 500 600 700 800 900 1000 

Gördüğünüz gibi normal for döngüsünden farkı index’i ile ilgilenmeden tüm değerlerine ulaşabiliyoruz. Bu foreach döngüsü dizinin uzunluğu kadar dönecektir ve her seferinde bir sonraki değeri int sayi’ya atıyacaktır. Foreach kullanarak genel olarak dizinin tüm değerlerini okuyabiliriz fakat değer atamak için foreach kullanmayız. Değer atamak için normal for döngüsü kullanabiliriz.

Yukarıdaki örneğe çok benzer bir örnek verelim.

public class ForeachDongu {
    public static void main(String args[]){

        String[] meyveler = new String[] { "Portakal", "Elma", "Armut", "Çilek" };

        for (String meyve : meyveler) {
            System.out.print(meyve+" ");
        }

    }

}

Konsol Çıktısı:
Portakal Elma Armut Çilek 

Örnek: Uzunluğu 100 olan int bir diziye önce 1-999 arasında random değerler atayalım. Sonra atadığımız bu değerler arasında en büyük olan sayıyı bulalım. En büyük sayıyı bulma işlemini foreach ile yapalım.

public class MaxSayi {
    public static void main(String args[]){

        int [] sayilar = new int[100]; //Uzunluğu 100 olan diziyi oluşturduk

        for (int i = 0; i < sayilar.length ; i++) { //Değer ataması için for kullanıyoruz sayilar[i] = (int)(Math.random()*1000); //Tüm elemanlarına 0-999 arasında değerler atıyoruz } int max = 0; //başlangıç değerleri 
        
        for (int sayi : sayilar) { //Değerleri okumak için foreach 

            if(sayi > max){ //max sayıdan büyük ise
               max = sayi; //max sayı değiştiriliyor
            }
        }
        System.out.println("En büyük sayı: "+max);
    }

}

Konsol Çıktısı:
En büyük sayı: 994

Bu dersimde anlatmak istediklerim bu kadar. Böylelikle dizilerle işlem yapma aşamasına gelmiş bulunmaktayız. Bir sonraki dersimde dizilerde search (arama) işlemlerini nasıl yapacağız anlatmaya çalışacağım.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Temel Java Dersleri için tıklayınız..

106
Exit mobile version