Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021
Karar Verme Yapısı if (koşul) deyim; if (koşul) { deyim1; deyim2; … } Bil 1022 if (koşul) deyim1; else deyim2; if (koşul) { deyim1; deyim2; } else { deyim4; …; }
if-else public class IfOrnegi { public static void main(String[] args) { int dersSaati = 5; if (dersSaati>=0 && dersSaati<8){ System.out.println("Cok erken, ogrenciler gelmez!"); }else if (dersSaati>=8 && dersSaati<19){ System.out.println("Ders saati uygun"); }else{ System.out.println(“Çok geç"); } } } Konsol çıktısı Cok erken, ogrenciler gelmez! Bil 1023
Java’da Karşılaştırma İ şlemleri Koşul: true veya false de ğ eri verir Koşulu oluşturan de ğ işkenlerle kullanılabilecek işleçler: Matematiksel Gösterim Java Gösterimi === ≠!= ≤<= ≥>= << >> Bil 102 4
Java’da Karşılaştırma İ şlemleri if (satisFiyati > 200) { indirim = satisFiyati * 0.25; satisFiyati = satisFiyati – indirim; } if (cinsiyet != ‘E’) cocukYardimi = 45; if (b*b – 4*a*c > 0) System.out.println(“Karekok alinabilir”); Bil 1025
Java’da Karşılaştırma İ şlemleri == Temel veri türleri için geçerli bir karşılaştırma yolu E ğ er iki double veya iki float karşılaştırılıyorsa hatalı sonuç çıkabilir, aralarındaki fark belli bir de ğ erin altındaysa. Dizgileri karşılaştırmak için ->.equals() Bil 1026
Java’da Karşılaştırma İ şlemleri String s1 = “MERHABA”, s2=“Merhaba”; if (s1.equalsIgnoreCase(s2)) System.out.println(“dizgiler ayni”); s1.compareTo(s2) < 0 s1 s2’den önce (küçük) s1.compareTo(s2) == 0 s1 = s2 s1.compareTo(s2) > 0 s1 s2’den sonra (büyük) Karşılaştırma alfabetik olarak yapılır. A karakterinin sayı de ğ eri = 65, B = 66, … a karakterinin sayı de ğ eri = 97, b = 98, … ◦ Merhaba < merhaba ◦ merhaba < merhabax ◦ aa > ZZa Bil 1027
Java’da Mantık İ şlemleri Bir cümle içinde birden fazla koşul olabilir Bu koşullar arasında mantıksal işleçler kullanılmalıdır Java Gösterimi Mantıksal Karşılığı &&VE (AND) ||VEYA (OR) !DEĞİL (NOT) Bil 102 8
Java’da Mantık İ şlemleri if (yas >= 18 && yas <= 65) if (! (fiyat >100)) if (fiyat <= 100) Bil 1029
Java’da Mantık İ şlemleri import java.util.*; public class IfOrnegi { public static void main(String[] args) { Scanner klavye = new Scanner(System.in); System.out.println("Ortalamanizi giriniz: "); float ortalama = klavye.nextFloat(); if (ortalama > 4 || ortalama < 0) System.out.println("Hatali ortalama"); else if (ortalama <=2) System.out.println("Sinifta kaldiniz"); else if (ortalama >=3) System.out.println("Seref listesindesiniz"); else // ortalama > 2.0 && ortalama < 3.0 System.out.println("Sinifi gectiniz"); } Bil 10210
Örnekler if (x>0) if(x > 10) System.out.println("x 0 ve 10'dan buyuk"); else System.out.println("x 0'dan buyuk 10'dan kucuk"); else hangi if’e ait??? x = 15 ise “x 0 ve 10’dan buyuk” x = 7 ise “x 0’dan buyuk 10’dan kucuk” x = -3 ise Ekrana birsey cikmaz else ifadesi kendisinden önceki ilk eşi olmayan (else’i olmayan) if ile eşleştirilir Ancak karışıklı ğ a yol açmamak için öbek parantezlerinin kullanılması daha uygun bir tercih olacaktır. Bil 10211
Örnekler if (x>0) { if(x > 10) System.out.println("x 0 ve 10'dan buyuk"); else System.out.println("x 0'dan buyuk 10'dan kucuk"); } Bil 10212
Örnekler if (x>0); x = -100; Bu ifadede, if oncesinde x de ğ eri ne olursa olsun sonuc olarak x de ğ eri -100 olacaktır. if (x>0); ifadesinde (x>0) olsa dahi deyim kısmı olmadı ğ ı için herhangi bir işlem yapılmayacaktır. Bil 10213
Scanner klavye = new Scanner(System.in); System.out.println("Ortalama?:"); float ortalama = klavye.nextFloat(); if (ortalama>4 || ortalama<0) System.out.println("Hatali ortalama"); else { int sonuc = (int) ortalama; switch (sonuc) { case 0: case 1: System.out.println("Sinifta kaldiniz"); break; case 3: case 4: System.out.println("Seref listesine girdiniz"); break; default: System.out.println("Sinifi gectiniz"); break; } Bil 10214
public static void main(String[] args) { int secim; double x, y, toplam, fark, carpim, bolum; Scanner klavye = new Scanner(System.in); System.out.println("Hangi islem?:"); secim = klavye.nextInt(); switch(secim) { case 1: System.out.println("+"); x = klavye.nextInt(); y = klavye.nextInt(); System.out.println("Sonuc = "+ (x+y)); break; case 2: System.out.println("-"); x = klavye.nextInt(); y = klavye.nextInt(); System.out.println("Sonuc = "+ (x-y)); break; case 3: System.out.println("*"); x = klavye.nextInt(); y = klavye.nextInt(); System.out.println("Sonuc = "+ (x*y)); break; case 4: System.out.println("/"); x = klavye.nextInt(); y = klavye.nextInt(); System.out.println("Sonuc = "+ (x/y)); break; default: System.out.println("CIKIS"); break; } } Bil 10215
Koşullu İ şleç if (a>b) sonuc = a; else sonuc = b; if ( yas > 18) durum = “oy kullanabilir”; else durum = “oy kullanamaz”; Bil sonuc = (a>b) ? a:b; durum = (yas > 18) ? “oy kullanabilir”:”oy kullanamaz ”;
Örnekler Santigrat Fahrenheit dönüşümü Bil 10217
Math Sınıfı Matematiksel işlemler için kullanılabilecek metodlar: Math.pow(x,y) Math.abs(x) Math.max(x,y) Math.min(x,y) Math.sqrt(x) Math.round(x) Math.ceil(x) Math.floor(x) Bil 10218
Math Sınıfı Math.pow(2,3) = 8.0 Math.pow(2, 3.5) = Math.min(4, 5.5) = 4.0 Math.ceil(3.1) = 4.0 … Örnek: sayfa 72 Bil 10219
Döngüler Döngü tasarımında döngüye giriş koşulu, döngünün uygulanan tekrar kısmı ve döngüden çıkış koşuluna dikkat etmek gerekir. while (koşul) { deyim1; deyim2; } Bil 10220
Örnekler Bir sınıftaki ö ğ rencilerin notlarının ortalamasını bulunuz ◦ Ö ğ renci sayısı biliniyorsa ◦ Ö ğ renci sayısı bilinmiyorsa N sayının toplamı ◦ N Bil 10221
do-while Döngüsü do { deyim1; deyim2; … } while (koşul); Bil 10222
for Döngüsü for (başlangıç ifadesi; koşul; yenileme ifadesi) ◦ Döngü gövdesi for (sayac=1; sayac<=5; sayac++) System.out.println(“sayac = “ + sayac); Bil 10223
Örnekler 10 sayının ortalaması for (sayac=1; sayac<=10; sayac++) { sayi = klavye.nextDouble(); toplam += sayi; } ortalama = toplam / 10; Bil 10224
Örnekler for(sayac=1; sayac=<3; sayac++); System.out.println(“Sayac= ”+sayac); for(i=1; i<=5; i++) {for(j=1; j<=5; j++) System.out.print(“*”); System.out.println(); } Bil 10225
Örnekler Sayfa 89: (14) 1 0 … (sonsuz döngü) Bil 10226
Örnekler (15) Döngü koşulu daha baştan yanlış, o nedenle ekrana birşey yazılmaz. (17) Bil 10227
Örnekler (18) 0 (for ifadesinden hemen sonra ; oldu ğ u için sadece bu satır koşul yanlış oluncaya kadar çalışır, sonra da biter. Bitti ğ i zamanki i de ğ eri sıfır oldu ğ u için ekrana yalnızca 0 yazılır.) Bil 10228
Rastgele Sayılar Math.random() 0.0 – arasında sayı verir. Elde edilen sayı istenilen aralıkta bir tamsayıya dönüştürülerek kullanılabilir. System.out.println(“Kac kere zar atalim?”); kacKere = klavye.nextInt(); for (i=1; i<=kacKere; i++) { zar1 = (int) (Math.random() * 6) + 1); System.out.println(zar1); } Bil 10229
Döngülerde Break Komutu Herhangi bir döngüden çıkmak için break komutu kullanılabilir. Programı belli bir noktada sona erdirmek için: System.exit(0) While(koşul){ if(koşul2){ break; } if (elemanSayisi == 0) { System.out.println(“Hata! 0\’a bolunemez”); System.exit(0); break; } else { isBolumu = toplamSaat / elemanSayisi; System.out.println(“Her eleman “ + isBolumu + “ saat calisacak”); } Bil 10230
İ ç İ çe Döngüler Dıştaki döngünün her tekrarı sırasında içteki döngü tam olarak çalışır. Dıştaki döngü N kere tekrar ediyorsa, içteki döngü de kendi başına M kere tekrar ediyorsa, bu döngüler iç içe yazıldı ğ ında içteki döngü NxM kere tekrar eder. Bil 10231
Örnekler int i, j; for(i=1; i<=3; i++) { for(j=1; j<=3; j++) System.out.print("*"); System.out.println(); } *** Bil 10232
Referans: kadio ğ lu Bil 10233