BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > Java Programlama > Koşul ve if kalıbı

Koşul ve if kalıbı

Java program dosyalarında yer alan işlem satırları normal koşullarda yukarıdan aşağıya sırasıyla çalıştırılır. Ancak, bazı işlem satırlarının belirli koşulların sağlandığı durumlarda çalıştırılması gerekebilir. Bu durumlarda if kalıpları kullanılır.

if kalıbı tek başına, else deyimi ile birlikte, else if deyimi ile birlikte veya her ikisi ile birlikte kullanılabilir.

if kalıbı


if (ifade) işlem-satırı; /* if kalıbının tek başına kullanımı */

if (ifade) {
    işlem-satırı;
    işlem-satırı;
    .
}	

if kalıbı doğru sonuç verdiğinde çalışacak tek bir işlem satırı varsa { } işaretleri kullanmak tercihe bağlıdır. Ancak, çalışacak bir kod bloğu varsa mutlaka kullanılmalıdır.

Eğer if ile başlayan satırda if deyiminden sonra yer alan parantezler içindeki ifade doğru ise (ifade sonucu 0'dan farklı ise) aynı satırda if kalıbı ile ilgili işlem satırı çalışır. Eğer ifade yanlış ise (ifade sonucu 0'a eşit ise) if kalıbından sonra yer alan işlem satırı devre dışı kalır. Yani, program o işlem satırı hiç yazılmamış gibi bir sonraki işlem satırından çalışmaya devam eder.

Aşağıdaki program, if satırındaki koşul doğru sonuç verirse, if ifadesinden sonra yer alan işlem satırı çalışır, aksi takdirde bir sonraki satırdan program çalışmasına devam eder.


public class javaprog {
  public static void main(String args[]){
    int id1 = 25, id2 = 17;

    if(id1 > id2) System.out.println("id1 değişkeni id2 değişkeninden büyüktür!");
    System.out.println(id1+id2);
  }
}

Yukarıdaki programı çalıştırdığınızda, ekran çıktısı aşağıdaki şekilde olacaktır:

C:\>javac javaprog.java
C:\>java -Dfile.encoding=Cp857 javaprog
id1 değişkeni id2 değişkeninden büyüktür!
42

if else kalıbı


/* if kalıbının else deyimi ile birlikte kullanımı */
if (ifade) işlem-satırı;
else işlem-satırı;

if (ifade) {
   işlem-satırı;
   işlem-satırı;
   .
}   
   
else {
   işlem-satırı;
   işlem-satırı;
   .
}

Eğer if satırında yer alan ifadenin sonucu doğru ise, program if satırındaki işlem satırının gereğini yerine getirir, else satırına hiçbir işlem yapmaz. Eğer if satırında yer alan ifade yanlış ise, program if satırını dikkate almaz, else satırındaki işlem satırının gereğini yerine getirir.

Program iki satırdan sadece bir tanesini dikkate almak zorundadır.

Sadece if satırlarından oluşan bir programda bütün if satırları da işlem görebilir, hiçbir if satırı da görmeyebilir. Elde edilecek sonuç tamamen if satırlarında tanımlanan ifadelerin doğruluğuna bağlıdır ve birbirinden bağımsızdır. if ve else gruplarından oluşan işlem satırlarında ise if ya da else işlem satırlarından birisi mutlaka çalışacaktır. Çünkü biri diğerinin alternatifidir ve birbirine bağlıdır. Program if satırının ifadesinin sonucunun doğru olduğunu belirleyip ilgili işlem satırını çalıştırdığında, artık else ile ilgili işlem satırına işlem yapma şansı yoktur.

Aşağıdaki program, if satırındaki koşul doğru sonuç verirse, if ifadesinden sonra yer alan işlem satırı çalışır, aksi takdirde else satırında yer alan ifadeler devreye girer:


public class javaprog {
  public static void main(String args[]){
    int id1 = 4, id2 = 11;

    if(id1 > id2) System.out.println("id1 değişkeni id2 değişkeninden büyüktür!");
    else System.out.println("id1 değişkeni id2 değişkeninden büyük değildir!");
    System.out.println(id1+id2);
  }
}

Yukarıdaki programı çalıştırdığınızda, ekran çıktısı aşağıdaki şekilde olacaktır:

C:\>javac javaprog.java
C:\>java -Dfile.encoding=Cp857 javaprog
id1 değişkeni id2 değişkeninden büyük değildir!
15

if else if kalıbı


if(ifade) işlem-satırı
else if(ifade) işlem-satırı
else if(ifade) işlem-satırı
.
else if(ifade) işlem-satırı
else işlem-satırı

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 kalıbının aynı sayıda if satırı ile sağlanan seçenek sistemine göre bir avantajı vardır. if satırları ile sağlanan seçenek sisteminde program doğru sonuç veren bir ifadenin bulunduğu bir if satırını çalıştırdıktan sonra, diğer if satırlarını da değerlendirmek zorundadır.

Aşağıdaki program, if satırındaki koşul doğru sonuç verirse, if ifadesinden sonra yer alan işlem satırı çalışır, aksi takdirde else if satırına geçilir. Eğer buradaki ifade doğru sonuç verirse işlem satırı çalışır, aksi takdirde else satırında yer alan işlem satırı herhangi bir koşul kontrolü yapılmadan çalışır:


public class javaprog {
  public static void main(String args[]){
    int id1 = 4, id2 = 11;

    if(id1 > id2) System.out.println("id1 değişkeni id2 değişkeninden büyüktür!");
    else if(id1 < id2) System.out.println("id1 değişkeni id2 değişkeninden küçüktür!");
    else System.out.println("id1 ve id2 değişkenleri eşittir!");
	
    System.out.println(id1+id2);
  }
}

Yukarıdaki programı çalıştırdığınızda, ekran çıktısı aşağıdaki şekilde olacaktır:

C:\>javac javaprog.java
C:\>java -Dfile.encoding=Cp857 javaprog
id1 değişkeni id2 değişkeninden küçüktür!
15

İç İçe if ve else deyimleri

Bir if veya else deyimine bağlı olarak çalıştırılan işlem satırında yeni bir if deyimi yer alabilir. Yine bir if veya else deyimine bağlı olarak çalıştırılan kod bloğu içinde yer alan işlem satırlarından birisinde yeni bir if deyimi yer alabilir. Başka bir ifade ile, bir if deyimi başka bir if veya else deyiminin içinde kullanılabilir. İçte kalan if deyimi dıştaki if deyimine ait ifadenin doğru olması halinde programın çalıştırdığı tek bir satır olabileceği gibi, dıştaki if deyimine ait bir kod bloğunun işlem satırlarından biri de olabilir.


if(ifade)
   if(ifade) işlem-satırı;

if(ifade) {
   if(ifade) {
      işlem-satırı;
      işlem-satırı;
   }
   else {
    işlem-satırı;
    if(ifade) işlem-satırı;
    else işlem-satırı; 
  }
}