Karşılaştırma İşlemleri ve Koşullu İfadeler BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz
Karşılaştırma İşlemleri Java'da sayısal veri tiplerinin karşılaştırılması için aşağıdaki karşılaştırma operatörleri kullanılır. 2 Matematiksel gösterim Java gösterimi = ==!= <= >= < < > >
Karşılaştırma İşlemleri Aşağıda farklı karşılaştırma örnekleri verilmiştir. satisfiyati >= 225 cinsiyet!= 'E' kalansure <= 300 not == 100 3
Karşılaştırma İşlemleri String tipinde verilerin karşılaştırılmasında ise.equals(),.equalsignorecase() veya.compareto() metotlarından biri kullanılmalıdır. String s1 = "TOBB", s2 = "tobb"; s1.equals(s2) // false s1.compareto(s2) // pozitif bir sayı s1.equalsignorecase(s2) // true 4
Mantık İşlemleri Karşılaştırma yaparken bir cümle içinde birden fazla koşul yer alabilir. Bu durumda koşulların arasında mantıksal operatörler kullanılmalıdır. Java gösterimi && Mantıksal karşılığı VE (AND) VEYA (OR)! DEĞİL (NOT) 5 yas > 18 && yas < 65 gun.equals("cumartesi") gun.equals("pazar")
Mantık İşlemleri Mantıksal işlemlerin sadeleştirilmesinde De Morgan kuralları kullanılabilir. (p Λ q)' = p' V q' (p V q)' = p' Λ q' Java'da!(p && q) ifadesi (!p!q) şeklinde sadeleştirilebilir. Örneğin!(yil == 2005 ay.equals("ekim") ifadesi, aşağıdaki ifade ile özdeştir: (yil!= 2005 &&!ay.equals("ekim")) 6
Karar Verme Yapısı Karar verme yapısı, birbirine alternatif birkaç kod grubundan hangisinin çalışacağına karar vermek için kullanılır. Akış denetimi komutları, belli koşullar sağlandığı sürece, aynı komutları tekrarlı çalıştırabilirler. Alternatif komutların seçilmesinde de tekrarlı işlemlerde de karar verme yapıları kullanılır. Bir koşula göre iki veya daha fazla seçenek arasında karar vermek için if, if-else ya da switch komutları kullanılır. 7
If deyimi 8 if komutu, belirli bir grup komutun çalışıp çalışmayacağına bir koşula göre karar verir. if (koşul) deyim; Yukarıdaki yazımda koşul değeri doğruysa deyim çalışır, yanlışsa çalışmaz. koşul kısmında boolean tipinde bir değişken olabileceği gibi, bir karşılaştırma işlemi de yapılabilir. koşul kısmının sonuç değeri boolean tipinde, yani true veya false olmalıdır.
If deyimi 9 if (1 == 1) x = 5; Örnekte (1 == 1) karşılaştırması true sonuç vereceği için x = 5; çalışır ve x değişkeninin değeri 5 olur. if (x > y) z = sayi / 3; Yukarıdaki örnekte x > y koşulu doğruysa, yani x değişkeninin değeri y değişkeninin değerinden büyükse, sonuç olarak true değeri üretir ve z = sayi / 3; deyimi çalışır.
If deyimi public class KisaIfOrnegi { public static void main(string [] args) { String ileti = "BIL131 Bilisim Teknolojileri ve Programlama"; int uzunluk = ileti.length(); if (uzunluk < 50) System.out.println("bu cumle cok kisa"); Çıktı: bu cumle cok kisa 10
If deyimi 11 import java.util.*; public class DersGecme{ public static void main(string [] args){ Scanner klavye = new Scanner(System.in); System.out.println("Ortalamanizi giriniz:"); float ortalama = klavye.nextfloat(); if (ortalama > 4) System.out.println("Hatali ortalama!"); if (ortalama <= 2.0) System.out.println("Sinifta kaldiniz!"); if (ortalama >= 3.0) System.out.println("Seref listesine girdiniz!"); if ((ortalama > 2.0) && (ortalama < 3.0)) System.out.println("Sinifi gectiniz!"); Örnek Çıktı: Ortalamanizi giriniz: 3,4 Seref listesine girdiniz! Örnek Çıktı: Ortalamanizi giriniz: 2,5 Sinifi gectiniz!
If deyimi Eğer if komutu birden fazla deyimi ilgilendiriyorsa bu deyimler parantez içine alınmalıdır. if (koşul) { deyim1; deyim2; if komutundan sonra parantez kullanılmazsa, sadece ilk deyimin çalıştırılması if komutuna bağlıdır. 12
If deyimi 13 public class UzunIfOrnegi { public static void main(string [] args) { String ileti " BIL131 Bilisim Teknolojileri ve Programlama "; int uzunluk = ileti.length(); if (uzunluk < 50) { System.out.println("bu cumle cok kisa"); System.out.println("sadece 50 harften uzun cumleler uzundur."); Çıktı: bu cumle cok kisa sadece 50 harften uzun cumleler uzundur.
If else yapısı 14 Eğer iki grup komuttan bir tanesi bir koşul sağlandığında, diğeri ise bu koşul sağlanmadığında çalıştırılmak isteniyorsa if-else yapısı kullanılır. if (koşul) deyim1; else deyim2; Yukarıdaki örnekte koşul doğruysa deyim1, yanlışsa deyim2 çalıştırılır. if ve/veya else durumlarında birden fazla deyim kullanılmak isteniyorsa, kullanılacak deyimler parantez içine alınmalıdır.
If else yapısı 15 public class IfElseOrnegi { public static void main(string [] args) { String ileti " BIL131 Bilisim Teknolojileri ve Programlama "; int uzunluk = ileti.length(); if (uzunluk < 50) { System.out.println("bu cumle cok kisa"); System.out.println("sadece 50 harften uzun cumleler uzundur."); else System.out.println("bu cumle yeterince uzun"); Çıktı: bu cumle cok kisa sadece 50 harften uzun cumleler uzundur.
İç içe if cümleleri Program karar verme aşamasındayken birden fazla koşulu göz önünde bulundurmasını isteyebiliriz. Koşullara göre hangi kararın verileceğini belirlemek için iç içe if ifadelerini kullanırız. 16 if (koşul1) { deyim1; else{ if (koşul2) { deyim2; else { deyim3; Bu örnekte eğer koşul1 sağlanırsa deyim1; koşul1 sağlanmayıp koşul2 sağlanırsa deyim2 ve her iki koşul da sağlanmazsa deyim3 çalışacaktır.
İç içe if cümleleri Biraz önceki örneği aşağıdaki if else if else yapısı kullanarak aşağıdaki şekilde sadeleştirmek de mümkündür: 17 if (koşul1) { deyim1; else if (koşul2) { deyim2; else { deyim3; Bu örnek, bir önceki örnek ile özdeştir. Eğer koşul1 sağlanırsa deyim1; koşul1 sağlanmayıp koşul2 sağlanırsa deyim2 ve her iki koşul da sağlanmazsa deyim3 çalışacaktır.
İç içe if cümleleri 18 import java.util.*; public class DersGecmeOrnegi{ public static void main(string [] args){ Scanner klavye = new Scanner(System.in); System.out.println("Ortalamanizi giriniz:"); float ortalama = klavye.nextfloat(); if (ortalama > 4) System.out.println("Hatali ortalama!"); else if (ortalama <= 2.0) System.out.println("Sinifta kaldiniz!"); else if (ortalama >= 3.0) System.out.println("Seref listesine girdiniz!"); else System.out.println("Sinifi gectiniz!"); Örnek Çıktı: Ortalamanizi giriniz: 3,4 Seref listesine girdiniz! Örnek Çıktı: Ortalamanizi giriniz: 2,5 Sinifi gectiniz!
Switch komutu Birkaç farklı koşuldan seçim yapmayı gerektiren durumlarda switch komutu da kullanılabilir. if-else yapısında koşul olarak boolean tipinde değerler kullanılırken; switch komutu karşılaştırma işlemi için char, int, short, byte veya long (ve hatta String) türünde verileri kullanabilir. 19
Switch komutu 20 switch (denetim ifadesi) { case Etiket1: ---; break; case Etiket2: ---; break; case Etiket3: ---; break; default: ---; break; switch komutu karşılaştırma yapabilmek için denetim ifadesi değerini alır ve bu değerin Etiket1, Etiket2,..., vb. etiketlerden herhangi birisine eşit olup olmadığını kontrol eder. Eğer denetim ifadesinin değeri etiketlerden herhangi bir tanesinin değerine eşitse, o etiketin altındaki deyimler çalıştırılır. Eğer denetim ifadesinin değeri etiketlerden hiç birisine eşit değilse, default etiketi altındaki deyimler çalıştırılır.
Switch komutu import java.util.*; public class SwitchOrnegi { public static void main(string [] args) { Scanner klavye = new Scanner(System.in); System.out.println("Ortalamanizi giriniz:"); float ortalama = klavye.nextfloat(); if (ortalama > 4) System.out.println("Hatali ortalama!"); else { int sonuc = (int) ortalama; 21
Switch komutu 22 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;
Koşullu İşleç Koşullu işleç, if-else ifadesinin farklı bir yazım şeklidir. if (a > b) c = a; else c = b; kodu yerine aşağıdaki yazım kullanılabilir. c = (a > b)? a : b; 23
Math Sınıfı Fonksiyonları Metot Parametre Sonuç İşlev Math.pow(x,y) x,y: double double Math.abs(x) x: int, long, float, veya double Parametreyle aynı x sayısının y. dereceden kuvvetini hesaplar x sayısının mutlak değerini hesaplar 24
Math Sınıfı Fonksiyonları Metot Parametre Sonuç İşlev Math.max(x,y) Math.min(x,y) x,y: int, long, float, veya double x,y: int, long, float, veya double Parametreyle aynı Parametreyle aynı x ve y sayılarından büyük olanı verir x ve y sayılarından küçük olanı verir 25
Math Sınıfı Fonksiyonları 26 Metot Parametre Sonuç İşlev Math.sqrt(x) x: double Double Math.round(x) x: float veya double int veya double Math.ceil(x) x: double double Math.floor(x) x: double double x sayısının karekökünü hesaplar x sayısını yuvarlar x sayısını bir üst tam sayıya tamamlar x sayısının tam kısmını verir