# Karar Mekanizmaları (if-else) KoÅula göre program içinde farklı iÅlemleri yerine getirmek gerekebilir. İf-else muhtemelen yazılım programlarında en yaygın kullanılan karar mekanizmasıdır. Bu tarz durumları Java'da kodlayabilmek için if-else karar mekanizmasının yanında switch-case gibi yapılarda kullanılmaktadır. Bu yazımızda sizlerle birlikte if-else karar mekanizmasını inceleyeceÄiz. İf-else karar mekanizması istenilen koÅul gerçekleÅtiÄi takdirde çalıÅır. Kısacası belirlenen koÅul doÄruysa yazılan kod console kısmında çalıÅır. Fakat koÅulumuz yanlıŠise else Åartımıza baÄlı olan kodumuz console kısmında çalıÅtırılır.  ÃrneÄin: "yaÅı 50'den küçük olanların personel kayıtlarını getir" gibi bir ifadede yaÅı 50'den küçük olanları tespit etmek için karar mekanizmaları kullanılır. EÄer koÅul saÄlanmıyorsa baÅka bir kod bloÄu iÅletilir. İfadenin yazılımsal olarak Java'da karÅılıÄı aÅaÄıdaki gibidir. ````java if(age < 50) { // personel kayıtlarını getir } ```` KoÅulun gerçekleÅip gerçekleÅmediÄi "if" cümlesi içindeki ifadeye baÄlıdır. EÄer mantıksal ifade true ise "if" kod bloÄu çalıÅtırılır. Tabi ifadenin false döndüÄü durumda da programın bir Åeyler yapmasını isteyebiliriz. Bu durumda ise "else"ifadesi kullanılır. AÅaÄıdaki gibi bir örnekle açıklayabiliriz. EÄer, faiz oranı %70'den büyükse "Kurumsal MüÅteri" tipinde kredi ver, deÄilse "Standart MüÅteri" tipinde kredi ver Åeklinde bir karar mekanizması aÅaÄıdaki gibi tasarlanabilir. ````java if(creditRatio > 0.7) { System.out.println("Kurumsal müÅteri tipinde kredi"); } else { System.out.println("Standart müÅteri tipinde kredi"); } ```` KoÅullar birden fazla olabilir ve hiçbir koÅula uymuyorsa en sonunda varsayılan bir duruma girilir ve o kod bloÄunu çalıÅtırmak gerekir. Bu tarz durumlarda ise "if - else if - else" gibi yapılar kullanılır. İf-else yapısına bir örnek daha aÅaÄıdaki gibi olabilir. ```java if(ortalama >= 50){ System.out.println("Dersi Geçtiniz"); } else{ System.out.println("Dersten Kaldınız"); } ``` Bu kod bloÄunda karar yapımda eÄer ortalama 50 ve üstü ise Dersi Geçtiniz yazar, deÄilse Dersten Kaldınız yazar. if kısmı koÅulun doÄruluÄunu kontrol ediyor, else kısmı ise koÅul yanlıŠise devamında yazan kodu çalıÅtırıyor. Yani eÄer ilk kısımda TRUE dönerse Dersi Geçtiniz yazacak, FALSE dönerse else kısmındaki kod çalıÅacak. UML olarak bunu ifade edersek : ## else if **if- else- if** : if-else-if kalıbında, bir if satırı, istediÄiniz sayıda else-if satırı ve isteÄe baÄlı olarak tanımlanan bir else satırı bulunur. Yani, else satırının tanımlanması Åart deÄildir. Program, en baÅta yer alan if satırı ile if-else-if kalıbını deÄerlendirmeye baÅlar. İlk doÄru ifadenin bulunduÄu if veya else-if satırı ile karÅılaÅtıÄında ilgili iÅlem satırını çalıÅtırır. Kalıbın geri kalan tüm satırlarını deÄerlendirmeye almadan geçer. EÄer if ve else if satırlarında yer alan ifadelerden hiç biri doÄru bir sonuç vermezse, else satırında yer alan iÅlem satırını çalıÅtırır. else satırı da mevcut deÄilse, program if-else-if kalıbının hiç bir satırını çalıÅtırmadan bir sonraki satırdan çalıÅmasına devam eder. if-else-if kalıbında sadece tek bir satır iÅlem görür. [if-else if]: https://www.bilgigunlugum.net/prog/java/java_if Konumuzu açıklamak amacıyla aÅaÄıdaki kodu inceleyebiliriz. ```int i=30; if(i==10){ System.out.println("i nin degeri 10'dur."); } else if(i<10){ System.out.println("i nin degeri 10'dan kücüktür."); } else{ System.out.println("i nin degeri 10'dan farklıdır ve 10'dan kücük degildir."); } ``` **Sizce yukarıda yazdıÄımız kodun Console çıktısı nedir ?** ```java i nin degeri 10'dan farklıdır ve 10'dan kücük degildir. ``` ÃrneÄin tuz oranı %80 ve üzerinde ise "yüksek derecede tuzlu", %80 ile %50 arasında ise "orta derecede tuzlu", bunların dıÅında bir durumda ise "düÅük derecede tuzlu" Åeklinde ekrana bilgiler yazan bir program yazmak istediÄimizde if-else if-else yapısını kullanabiliriz. ````java float saltRatio = 0.9f; if(saltRatio >= 0.8) { System.out.println("yüksek derecede tuzlu"); } else if(0.5 < saltRatio && saltRatio < 0.8 ) { System.out.println("orta derecede tuzlu"); } else { System.out.println("düÅük derecede tuzlu"); } ```` "if-else" yapılarını iç içe de kullanma Åansına sahibiz. ÃrneÄin: 18 yaÅından küçük olanlar kan baÄıÅı yapamazlar, fakat, 18 yaÅına eÅit ve büyük olan bir kiÅi eÄer kilosu 48'den büyükse kan verebilir, kilosu 48'den küçükse kan veremez gibi basit bir kuralı Java'da kodlayalım. ````java int age=25; int weight=48; if(age>=18){ if(weight>=48){ System.out.println("Kan verebilirsiniz"); } else{ System.out.println("Kan veremezsiniz"); } } else{ System.out.println("Kan verebilmek için yaÅınız 18'den büyük olmalıdır."); } ```` **Sizce yukarıda yazdıÄımız kodun Console çıktısı nedir ?** ```java Kan verebilirsiniz. ```