Bu yazımda, önceki yazılarımda bahsettiğim for döngüleri, iç içe for döngüleri ve if-else if-else kontrol yapılarını kullanarak matris şeklinde bir çarpım tablosu çıktısı alalım.
For Döngüsü
Öncelikle for döngüsünün mantığını hatırlayalım.
- Döngü için bir başlangıç değeri belirlenir.
- İşlemlerin kaç kez tekrarlanması isteniyorsa ona göre koşul belirlenir.
- Başlangıç değeri artışı belirlenir.
- Tekrarlanacak işlemler belirlenir.
Kontrol Yapıları – if, else if, else
if, else if, else kontrol yapılarının mantığını da hatırlayalım.
- if parantezinde boolean ifade belirlenir. “if(ifade)“
- Eğer ifade doğruysa yapılacak işlemler belirlenir.
- Eğer ifade yanlışsa ve ikinci bir kontrol yapısı (else if) ekleyeceksek else if parantezinde boolean ifade2 belirlenir. “else if(ifade2)“
- Eğer ifade2 doğruysa yapılacak işlemler belirlenir.
- Eğer ifade2 yanlışsa ve başka kontrol yapısı eklemeyeceksek (varsa) else kısmına geçilir
- İfade 1, ifade 2, … tüm ifadeler yanlış olduğunda yapılacak işlemler else kısmında belirlenir.
Alttaki görsel üzerinde hangi döngünün, hangi alanı oluşturacağını ve kodlarımızın nasıl bir çıktı vereceğini görebiliriz.
1. FOR Döngüsü; Tablomuzun düzgün görüntü vermesi için 11 tur çalışarak ekranda yan yana 11 adet boşluk bırakacak.
Not: Amaç mümkün olduğunda döngüleri kullanmaktır. Yoksa bu boşlukları döngü kullanmadan 11 adet boşluk yazan bir System.out.print ile de yazdırabiliriz.
for(int a = 1 ; a <= 11 ; a++){
System.out.print(" ");
}
2. FOR Döngüsü; 1’den 10’a kadar sayıları aralarında 3’er karakter boşluk bırakarak yan yana yazdıracak. Sonrasında bir alt satıra geçilecek.
for(int b = 1 ; b <= 10 ; b++){
System.out.print(b + " ");
}
System.out.println();
3. FOR Döngüsü; 54 kez çalışacak ve yan yana 54 tane alt çizgi “_” yazdıracak. Sonrasında bir alt satıra geçilecek.
for(int c = 1 ; c <= 54 ; c++){
System.out.print("_");
}
System.out.println();
4. FOR Döngüsü (Dış Döngü); 10 tur çalışacak ve;
- 6. ve 9. turlarda if bloğuna gireceğinden 6 ve 9 sayılarını “6’lar | ” ve “9’lar | ” şeklinde yazdıracak.
- 10. (son) turda else if bloğuna gireceğinden “10’lar| ” yazdıracak.
- 6., 9. ve 10. turlar harici tüm turlarda else bloğuna gireceğinden ilgili rakamları (X) “X’ler | ” şeklinde yazdıracak.
- Yapılan her yazdırma işleminden sonra 5. for döngüsü adımına geçecek.
for (int d = 1 ; d <= 10 ; d++) {
if (d == 6 || d == 9) {
System.out.print(d + "'lar | ");
}
else if(d == 10){
System.out.print(d + "'lar| ");
}
else System.out.print(d + "'ler | ");
//burada 4. for parantezini kapatmadık çünkü buraya iç (5.) döngü gelecek.
5. FOR Döngüsü (İç Döngü); 10 tur çalışacak ve;
- Her turda dış döngünün değeri (d) ile iç dögünün değeri (e) sayılarının çarpımını ekrana yazdıracak.
- Eğer çarpım sonucu 10’dan küçükse if adımına gireceğinden çarpım sonucunun yanına 3 karakter boşluk bırakarak ekrana yan yana yazdıracak.
- Eğer çarpım sonucu 9’dan büyükse else adımına gireceğinden çarpım sonucunun yanına 2 karakter boşluk bırakarak ekrana yan yana yazdıracak.
- Her iç döngü turu bittikten sonra bir alt satıra geçecek.
for (int e = 1 ; e <= 10 ; e++){
if((d*e)<10){
System.out.print((d*e) + " ");
}
else System.out.print((d*e) + " ");
}
System.out.println();
}//Dış Döngü (4.) kapanış parantezi
Düzgün bir görünüm elde etmek için boşluklardan yararlandığımız çarpım tablosu matrisi kodlarının tamamı alttaki gibidir.
public class MultiplicationTableExample {
public static void main(String[] args) {
// 1. for döngüsü
for(int a = 1 ; a <= 11 ; a++){
System.out.print(" ");
}
//2. for döngüsü
for(int b = 1 ; b <= 10 ; b++){
System.out.print(b + " ");
}
System.out.println();
//3. for döngüsü
for(int c = 1 ; c <= 54 ; c++){
System.out.print("_");
}
System.out.println();
//4. for döngüsü - dış döngü
for (int d = 1 ; d <= 10 ; d++) {
if (d == 6 || d == 9) {
System.out.print(d + "'lar | ");
}
else if(d == 10){
System.out.print(d + "'lar| ");
}
else System.out.print(d + "'ler | ");
//5. for döngüsü - iç döngü
for (int e = 1 ; e <= 10 ; e++){
if((d*e) < 10){
System.out.print((d*e) + " ");
}
else System.out.print((d*e) + " ");
}
System.out.println();
}
}
}
Programda if-else kontrol yapılarını ve ekrana yazdırılan boşluk karakterlerini, tablomuzun görünümünün düzgün olması ve 10’ler gibi hatalı bir yazım yerine 10’lar yazabilmek için kullandık. Boşluk adetlerinde oynamalar yapar ya da if else kontrollerini kullanmadan kodları yazarsanız tablonun şeklinin nasıl kaydığını görebilirsiniz.
Bu örnekte kullandığımız yapıların detayları için alttaki yazılarımı inceleyebilirsiniz.
- Java’da Döngüler – For Döngüsü (for loop)
- Java’da İç İçe Döngüler – (Nested Loops)
- Java’da Koşullu İfadeler: if, else if, else yapıları
Diğer yazılarımda görüşmek dileğiyle…