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

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

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ır. Foreach 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

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

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 }

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 }

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);
}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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..

45

Yorum Yap
0 Yorum yapan