Merhaba arkadaşlar, bugün hem döngüleri göreceğiz hem de dizilerin nasıl yazdırabileceğimizi göreceğiz. Bunun için for döngüsünü kullanacağız.
Öncelikle konsola elemanlarını yazdıracağımız bir dizi tanımlayarak kod yazımına başlıyoruz.
// TODO Auto-generated method stub
int dizi[][] = {{8,3,4}, {7,5,6},{11,9,12},{-4,-9,-2}}; // öylesine bir dizi tanımladım
for (int i = 0; i < dizi.length; i++) { // burada dizi.length = 4
for (int j = 0; j < dizi[0].length; j++) {//burada dizi[0].length = 3, dizinin 0. boyutu kesinlikle vardır. bu yüzden 0 verdim.
System.out.println("Dizi ["+i+"]["+j+"]. elemanı : "+dizi[i][j]);
}
}
}
[/java]
Dizimiz sizinde gördüğünüz gibi 4×3 boyutlu. En dıştaki for döngüsü 4 kere dönmeli ki biz yazdırabilelim. Diziler tanımlanırken boyutlarını gireriz. Fakat onları okurken dizi indisi 0 dan başladığı için uzunluğunun 1 aşağısına kadar yazdırırız. örneğin üstteki tanımladığım diziyi şöyle tanımlayabilirdik. int dizi [][] = new dizi[4][3]; fakat okurken örneğin dizi[4][0]’ı denediğimiz dizinin boyutunu aştığımızdan compiler yani derleyici hata verecektir. Bu yüzden bu işlemlere dikkat etmeliyiz. Üstteki fonksiyonda i < dizi.length derken i sadece 0 1 2 ve 3 değerlerini alacaktır. İkinci for döngüsü ise yani dizi[0].length 3 değerini alacaktır. Peki neden 0 yazıyoruz. Çünkü iki boyutlu bir dizi tanımlarken 0. indis muhakkak olmalıdır. Boş bir dizi yada – (negatif) boyutlu bir dizi tanımlanamaz. Aşağıdaki komutu main fonksiyonundan çağırdığımız da aşağıdaki çıktıyı alırız.
Bu diziyi yazdırmanın sadece bir yolu. Birden çok yolu vardır diziyi yazdırmanın. Ben bir yolunu daha göstereceğim. Bunun için aşağıdaki fonksiyonu inceleyelim.
[java] private static void diziIcinForDongusu2() {// TODO Auto-generated method stub
int dizi[][] = {{8,3,4}, {7,5,6},{11,9,12},{-4,-9,-2}}; // öylesine bir dizi tanımladım
for (int i = 0; i < dizi.length; i++) { // burada dizi.length = 4
System.out.println(Arrays.toString(dizi[i]));//bu yöntemide kullanabiliriz.
}
}
[/java]
Burada özel bir fonksiyon kullandık. Arrays.toString fonksiyonu içine tek bir parametre alır. Bu da dizi olmak zorundadır. Integer olsun String olsun boolean olsun sonuç farketmicektir. Yani javada ki tüm veri tiplerinin dizi halini kabul eder. Bu ikinci yöntemde oldukça kullanışlıdır. Projenizde hangisi sizin işinize geliyorsa onu kullanabilirsiniz. Bu fonksiyonun main fonksiyonda çağırdığımızda aşağıdaki çıktıyı verir.
Bir de foreach döngüsü vardır. Bu döngü çift boyutlu dizi yazdırmak iki for gerektireceğinden biraz mantıksızdır. Bunun için tek boyutlu dizilerde yazdırma işlemini göstereceğim.
[java] private static void forEachOrnek() {// TODO Auto-generated method stub
int dizi[] = {8,3,4};// tek boyutlu bir dizi tanımladık.
for (int is : dizi) { // tek boyutlu diziler foreach döngüsü ile kolaylıkla yazdırılabilir.
System.out.print(is+" ");//fakat çift boyutlu diziler için ikinci bir for gerekir.
}
}
[/java]
Bir de while döngüsüne örnek vermek istiyorum. While döngüsü ile faktoriyel hesabı yapalım. int dönen bir fonksiyon kullanalım tek parametre olarak faktoriyel alacağımız sayıyı alsın. ve bu sayıyı 5 kabul edelim.
[java] private static int whileIleFaktoriyel(int sayi) {// faktoriyel alacağımız sayıyı parametre olarak alıyoruz// TODO Auto-generated method stub
int faktoriyel = 1;
while(true){
if(sayi>1){
faktoriyel = faktoriyel * sayi; // ilk adımda faktoriyel = 1*5 — ikinci adımda faktoriyel = 5*4 — üçüncü adımda faktoriyel = 20*3 — dördüncü adımda 60*2
sayi–;//sayiyi bir azaltıyoruz yani 4 oldu. — 4. adıma gelindiğinde sayi değişkenimiz 1 olur ve else bloguna girer.
}else{
break; // while döngüsünü sonlandırır.
}
}
return faktoriyel; // faktoriyel değişkeninin sonucunu döndürür.
}
[/java]
Bir de son olarak main metodumuzda diğer metotlarımızı nasıl çağırdığımızı görelim.
[java] public static void main(String[] args) {// diziIcinForDongusu();
// diziIcinForDongusu2();
// forEachOrnek();
System.out.println("Faktoriyel sonucu : "+whileIleFaktoriyel(5));
}
[/java]
whileIleFaktoriyel adlı metotumuzun konsol çıktısı aşağıdaki gibidir.
Okuduğunuz için teşekkür ederim. Sorularınızı yorum alanına yazabilirsiniz. Memnuniyetle yardımcı olmaya çalışırım.