MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 4: Karar Yapıları Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/Ders.aspx?dersId=101 1 If Kontrol Yapısı • • • • Bilgisayar dillerinde değişkenlerden ve işlemlerden sonraki en temel yapı karar yapılarıdır. Şimdi bu komut yapılarına tek tek göz atalım. İlk yapımız if - elseif - else mantıksal karşılaştırma yapısı’dır. Bu yapı programda karar mekanizmalarını oluşturmak için kullanılır. Temel yapısı : if ( boolean değişken yada sabit) { boolean degişken veya sabitin değeri true olduğunda yapılan işlemler} else if( boolean değişken yada sabit) { boolean degişken veya sabitin değeri true olduğunda yapılan işlemler} else { yukarıdaki boolean değişken vede sabitlerin hiçbiri true değerine eşit değilse yapılacak olan işlemler} 2 Akış Şeması • If kontrol yapıları aşağıdaki akış şemasındaki gibi düşünülebilir. if (havasoguksa) paltoGiy (); Dışarıda hava Soğuk mu? Evet Palto giy. Hayır Akış Şeması • Bir kod bloğu aşağıdaki gibi ifade edilebilir: if (havaSogukmu){ paltoGiy (); sapkaTak (); eldivenGiy (); } Parantezler birden fazla kod bloğunu bir arada kullanmak İçin bulunmaktadır. Dışarıda hava Soğuk mu? Evet Palto giy. Şapka tak. Eldiven giy. if-else Yapısı Hayır Tshirt giy. Dışarıda hava soğuk mu? Evet Palto giy. If karar yapısı örneği-1 import javax.swing.*; public class ifornek1 { public static void main(String args[]){ String s1=JOptionPane.showInputDialog("Ogrencinin notunu giriniz (0-100) : "); int not=Integer.parseInt(s1); String s; if( not >= 90){ s="A";} else if(not >=75) { s="B";} else if(not >=60) { s="C";} else if(not >=50) { s="D";} else if(not >=40) { s="E";} else{ s="F";} s=" Öğrencinin notu = "+s; JOptionPane.showMessageDialog(null,s); } } 6 If karar yapısı örneği-2 import javax.swing.*; public class ifornek2 { public static void main (String args[]){ double x=1.245; double y=3.235; String s1=""; if(x<y) { s1=x+" değeri "+y+" değerinden küçüktür";} else if(x>y) { s1=x+" değeri "+y+" değerinden büyüktür";} else if(x==y) { s1=x+" değeri "+y+" değerine eşittir";} JOptionPane.showMessageDialog(null,s1); } } 7 İçiçe if Yapıları Akış Şeması Hayır Evet Dışarıda hava soğuk mu? Tshirt giy Hayır Ceket giy. Kar yağıyor mu? Evet Palto giy İçiçe if yapıları Bu if ve else bir arada çalışıyor. 3-9 Bu if ve else bir arada çalışıyor. if (havasoguksa) { if (karyagiyorsa) { paltoGiy(); } else { ceketGiy(); } } else { tshirtgiy (); } If karar yapısı örneği-3 import javax.swing.*; public class ifornek3 { public static void main (String args[]) { String s1=""; double x = 7.0; double y = 3.0; if(x > 5) { if(y > 5){ s1="x ve y besten buyuktur.";} else if(y==5) { s1="x besten buyuktur ve y bese esittir.";} else{ s1="x besten buyuktur ve y besten kucuktur.";} } else { if(y > 5) { s1="x besten kucuktur veya esittir ve y 5 den buyuktur.";} else if(y==5) { s1="x besten kucuktur veya esittir ve y bese esittir.";} else{ s1="x besten kucuktur veya esıttır ve y besten kucuktur.";} } JOptionPane.showMessageDialog(null,s1); } } 10 Mantıksal Operatorler Operasyon Anlamı İşlevi && AND İki mantıksal ifadeyi birleştirir. Sonucun true olması için iki ifadenin de true olması gerekir. || OR İki mantıksal ifadeyi birleştirir. Sonucun true olması için en az bir ifadenin true olması gerekir. NOT Mantıksal ifadeyi tersine çevirir. False olan bir duruma uygulanırsa true, true olan bir duruma uygulanırsa false döndürür. ! 3-11 If karar yapısı örneği-4 import javax.swing.*; public class ifornek4 { public static void main (String args[]) { String s1=""; double x = 7.0; double y = 3.0; if(x>5 && y>5){ s1="x ve y beşten büyüktür.";} else if(x>5 && y==5){ s1="x beşten büyüktür ve y ve beşe eşittir.";} else if(x>5 && y<5){ s1="x beşten büyüktür ve y beşten küçüktür.";} else if(x<5 && y>5){ s1="x beşten küçüktür ve y 5 ten büyüktür.";} else if(x < 5 && y==5) { s1="x beşten küçüktür ve y beşe eşittir";} JOptionPane.showMessageDialog(null,s1); } } 12 KAYNAKÇA 1. Turhan Çoban, Java Bilgisayar Diliyle Programlama. 2. Starting Out with Java 5th Edition (Tony Gaddis): From Control Structures through Objects 13