Java programlama dilinde for döngüsünün kullanımına genel anlamda göz atacağız.
Tekrarlanma, sıralama, arttırma, azaltma, matematiksel ifadeler ve daha birçok alanda kullanılan döngülerden biri olan for döngüsü, 3 parametre alarak çalışmaktadır. Öncelikle for döngüsünün yapısını inceleyelim;
for (değişken başlatma; koşul; değişken arttırma/azaltma) {
GERÇEKLEŞEN İŞLEM
}
şeklinde bir yapısı vardır.
Örneğin elimizdeki bir metni ekrana birden fazla defa yazdırmak istersek;
for(int i=0; i<5; i++) {
System.out.println("Mert Topuz: www.merttopuz.com");
}
ve ekrana çıktısı da;
Mert Topuz: www.merttopuz.com
Mert Topuz: www.merttopuz.com
Mert Topuz: www.merttopuz.com
Mert Topuz: www.merttopuz.com
Mert Topuz: www.merttopuz.com
şeklinde olacaktır.
Buna benzer olarak 1'den 100'e kadar sayıları ekrana yazdırabiliriz;
for(int i=1; i<=100; i++) {
System.out.print(i+" ");
}
ve çıktısı da;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
böyle olacaktır.
For döngüsünde bunların dışında 3. parametreyi şöyle değiştirebiliriz;
for(int i=1; i<=100; i += 2) {
System.out.print(i+" ");
}
ve böylece 1'den 100'e kadar olan tüm tek sayıları yazdırmış oluruz;
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
ÖRNEK
1'den 5'e kadar olan sayıların karelerini ekrana yazdır.
ÇÖZÜM
for(int i=1; i<=5; i++) {
System.out.println("Karekök içinde "+i*i+" = "+i+" demektir.");
}
ÇIKTI
Karekök içinde 1 = 1 demektir.
Karekök içinde 4 = 2 demektir.
Karekök içinde 9 = 3 demektir.
Karekök içinde 16 = 4 demektir.
Karekök içinde 25 = 5 demektir.
FOR Döngüsünün Akış Şeması
FOR Döngüsü Örnekleri
ÖRNEK
For döngüsü kullanarak aşağıdaki şekli oluşturun.
ÇÖZÜM
System.out.println("<------->");
for(int i=1; i<=5; i++) {
System.out.println("+\t+");
System.out.println(" +");
}
System.out.println("<------->");
ÇIKTI
ÖRNEK
For döngüsü kullanarak 50 ile 60 dereceleri arasını fahrenheit cinsinden ekrana yazdırınız.
ÇÖZÜM
for(int c=50; c<=60; c++) {
double f = c*1.8+32;
System.out.println(c+" Derece = "+f+" Fahrenheit");
}
ÇIKTI
50 Derece = 122.0 Fahrenheit
51 Derece = 123.8 Fahrenheit
52 Derece = 125.60000000000001 Fahrenheit
53 Derece = 127.4 Fahrenheit
54 Derece = 129.2 Fahrenheit
55 Derece = 131.0 Fahrenheit
56 Derece = 132.8 Fahrenheit
57 Derece = 134.60000000000002 Fahrenheit
58 Derece = 136.4 Fahrenheit
59 Derece = 138.2 Fahrenheit
60 Derece = 140.0 Fahrenheit
ÖRNEK
Basit bir çarpım tablosu oluşturun.
ÇÖZÜM
for(int a=1; a<=10; a++) {
System.out.print(a+"\t");
}
System.out.println();
for(int b=1; b<=10; b++) {
System.out.print(b*2+"\t");
}
System.out.println();
for(int c=1; c<=10; c++) {
System.out.print(c*3+"\t");
}
System.out.println();
for(int d=1; d<=10; d++) {
System.out.print(d*4+"\t");
}
System.out.println();
for(int e=1; e<=10; e++) {
System.out.print(e*5+"\t");
}
ÇIKTI
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
İç İçe FOR Döngüsü
Birçok for döngüsünün iç içe kullanılması ile gerçekleştirilir. Nested Loop olarakta bilinen iç içe döngüleri örnekler üzerinden inceleyelim;
for(int a=1; a<=5; a++) {
for(int b=1; b<=10; b++) {
System.out.print((b*a)+"\t");
}
System.out.println();
}
Bu örneğimizde iç içe for döngülerini kullanarak aslında bir önceki örneğimiz ile aynı çıktıyı elde etmiş olduk;
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
İç içe döngülerin çıktılarını hesaplarken adım adım gitmek gerekir. Öyle ki;
a = 1 iken;
b = 1 için ekrana a*b = 1*1 = 1 yazdır. Tab kadar boşluk bırak.
a = 1 iken;
b = 2 için ekrana a*b = 1*2 = 2 yazdır. Tab kadar boşluk bırak.
a = 1 iken;
b = 3 için ekrana a*b = 1*3 = 3 yazdır. Tab kadar boşluk bırak.
...
a = 1 iken;
b = 10 için ekrana a*b = 1*10 = 10 yazdır. Tab kadar boşluk bırak.
Alt satıra geç. Dıştaki döngüyü kontrol et. a = 2 ve a<=5 olduğuna göre;
a = 2 iken;
b = 1 için ekrana a*b = 2*1 = 2 yazdır. Tab kadar boşluk bırak.
a = 2 iken;
b = 2 için ekrana a*b = 2*2 = 4 yazdır. Tab kadar boşluk bırak.
a = 2 iken;
b = 3 için ekrana a*b = 2*3 = 6 yazdır. Tab kadar boşluk bırak.
...
a = 2 iken;
b = 10 için ekrana a*b = 2*10 = 20 yazdır. Tab kadar boşluk bırak.
Alt satıra geç. Dıştaki döngüyü kontrol et....
gibi kontrol aşamaları bizleri karşılar.
ÖRNEK
Aşağıdaki şekli nested loop kullanarak oluşturun.
ÇÖZÜM
for(int a=10; a>=1; a--) {
for(int b=1; b<=a; b++) {
System.out.print("*");
}
System.out.println();
}
ÖRNEK
Aşağıdaki şekli nested loop kullanarak oluşturun.
ÇÖZÜM
for(int a=1; a<=10; a++) {
System.out.print(a);
for(int b=10; b>a; b--) {
System.out.print("*");
}
System.out.println();
}