Merhaba...
Diğer programla dillerinde olduğu gibi, Java'da da programların akış denetimlerinde sıklıkla kullanılan karar yapılarından biri IF - ELSE yapısıdır.
JAVA IF - ELSE YAPISI
Java'da IF yapısı , beliritlen şartın durumu kontrol edilir ve şart(lar) sağlanırsa belirtilen işlemler yapılır. Kontrol edilecek şart normal parantez ( ) içerisinde belirtilirken, yapılacak işlemler { } süslü parantez arasında belirtilir. Aynı anda birden fazla şart mantıksal operatörler ile kontrol edilebilir..
IF yapısı genelde ELSE ile beraber kullanılır. ELSE , şartın sağlanmadığı durumlarda yapılacakları belirtir.. Yapılacak işlemler yine { } süslü parantez içerisidne belirtilir..
if ( şart ) {
// şart sağlanırsa yapılacaklar..
}
else {
// şart sağlanmadığında yapılacaklar..
}
Örneğin , bir sayının çift olup olmadığını kontrol edelim.. Bunun için sayının 2'ye bölümünden kalanı kontrol etmemiz gerekir. Kalan 0 ise sayı çift , kalan 1 ise sayı tek'tir...
class Main {
public static void main(String[] args) {
int sayi=5;
if ( sayi%2==0 ) {
System.out.println(sayi + " cift sayidir...") ; //kalan 0 ise
}
else {
System.out.println(sayi + " tek sayidir...") ; //kalan 0 değl ise
}
}
}
EKRAN ÇIKTISI
5 tek sayidir...
Yukarıda 5 sayısını değişkene alarak çift yada tek sayı olup olmadığını kontrol ettik. IF - ELSE yapısında kullandıklarımıza bakalım..
ŞART
Programda kontrol ettiğimiz şart, sayının 2'ye böümünden kalanın 0 olup olmadığıdır.. Bunu mod aşma (%) operatörü ile yağtık. Eşitlik ise iki eşit "==" işareti kullandık..
if ( sayi%2==0 )
IF BLOĞU - ŞART SAĞLANDIĞINDA YAPILACAKLAR
Şart sağlandığında , yani sayının 2'ye bölümünden kalan 0 ise "sayının çift olduğunu" süslü parantezler arasında yazdırdık...
{
System.out.println(sayi + " cift sayidir...") ; //kalan 0 ise
}
ELSE BLOĞU - ŞART SAĞLANMADIĞINDA YAPILACAKLAR
Şartın sağlanmadığı yani kalanın 0 olmadığı durumu else ile belirttik. Sayı çift değilse geriye bir ihtimal kalıyor; o'da sayının tek olduğu.. Dolayısıyla else süslü parantezleri arasında "sayının tek olduğunu" yazdırdık...
{
System.out.println(sayi + " teksayidir...") ; //kalan 0 değilse
}
Bazı durumlarda , sadece şartın oluşması durumuna göre işlemler yapılabilir. Bu durumlarda ELSE kullanmaya gerek kalmaz..
NEDEN ELSE YERİNE İKİNCİ BİR IF KULLANMIYORUZ?
Yukarıda ki örnekte ELSE yerine tekar bir IF oluşturup bu kez kalanın 1 olup olmadığını kontrol ettirebilir ve öyleyse sonucu yazdırabilirdik.

Bu durumda da , program itediğimizi yapacaktır. Ancak burada program her iki şartıda kontrol etmek zorunda kalır. İlk IF şartı sağlanmış olsada, programın akışına göre mecburen ikinci IF bloğunuda kontrol etmek zorunda kalacaktı. Buda programın çalışma süresinin uzaması ve boş yere satır kontrolü yapılması anlamına gelir..
Else kullandığımızda ise, eğer IF ile belirtilen şart sağlanırsa , program else bloğuna bakmayacak ve bir sonraki komutu işlemeye geçecektir..
Kapsamlı bir programda çok fazşa sayıda akış kontrolü olacağını varsayarsak , ELSE kullanmak hem programın daha kısa sürede çalışmasını sağlayacak hemde gereksiz denetimler ypmasını engelleyecektir!
JAVA IF - ELSE IF - ELSE YAPISI
Bazen programlar içerisinde , aynı durum için öncekine bağlı birden fazla kontrol ettirmek isteyeceğimiz olasılıklar olabilir. Bu durumda ayrı ayrı IF blokları açmak yerine ELSE IF kullanarak programın daha az yorulmasını sağlayabiliriz. ELSE IF 'te bir şart barındıracağı için , parantez içerisinde yeni şartı yazılır..
if ( şart ) {
// şart sağlanırsa yapılacaklar..
}
else if ( yeni şart ) { // ilk şart sağlanmazsa yeni şart
// yeni şart sağlandığında yapılacaklar..
}
else {
// tüm şartlar sağlanmadığında yapılacaklar..
}
Örneğin bir sayının negatif, poizitif yada 0 olup olmadığını kontrol edelim.. Bu durumda 3 şartımız olur;
- NEGATİF : sayının 0'dan küçük olması
- POZİTİF : sayının 0'dan büyük olması
- 0 : sayının 0olması...
Önce if ile negatif olup olmadığa, değilse ELSE IF ile pozitif olup olmadığına bakalım. Bu iki şartta sağlanmıyors geriye bir ihtimal kalıyor , o'da sayının 0 olması.. Bu durumuda ELSE ile yazabiliriz...
class Main {
public static void main(String[] args) {
int sayi=5;
if ( sayi<0 ) {
System.out.println(sayi + " negatif bir sayidir...") ; // sayı 0'dan küçkse
}
else if ( sayi>0 ) {
System.out.println(sayi + " pozitif bir sayidir...") ; // sayı 0'dan küçkse
}
else {
System.out.println(sayi + " sıfırdır..") ; // kalan tek ihtimal , sayı = 0
}
}
}
EKRAN ÇIKTISI
5 pozitif sayidir...
Yukarıda 5 sayısını değişkene alarak negatif, poizitif yada 0 olup olmadığını kontrol ettik. Dikkat ederseniz IF ile yazılan ilk şart "sayi < 0" sağlanmaz ise , ELSE IF ile yeni şart "sayi > 0" oluşturuldu . Son olarak her iki şartın sağlanmadığı ve griye kalan durumlr için ELSE oluşturularak , son ihtimal olan "0" ekranda yazdırıldı.
Görüşmek üzere..