if - else - else if

Javascript'te bu ifadeleri yazarken küçük harflerle yazdığınıza emin olunuz.

if Deyimi

if deyimini bir koşul ile ifade haline getirip koşul doğru olduğunda yapılacak işlemleri bir kod bloğu olarak ifade ederiz. Örnek.

let yas = prompt('Yaşınızı Giriniz', 20) ;
if ( +yas >= 15) {
    alert('Kimlik kartınızda fotoğraf olmak zorundadır.');
}

Eğer yukarıdaki yas değişkeni için 15'ten daha küçük bir sayı girerseniz herhangi bir uyarı almazsınız. Çünkü koşul doğrulanmaz ise (true) if bloğundaki kodlar yürütülmez.

if bloğunun çalışma mantığı şu şekildedir.

let kosul;
if (true) {
    kosul = 'truthy';
}
if (false) {
    kosul = 'falsy';
}
alert(kosul);

if (kosul) bloğundaki kodlar koşul gerçekleşirse (true) yürütülür, gerçekleşmezse (false) yürütülmez. Bunu true ve false değerlerinin matematiksel karışıkları ile de yapabiliriz.

let kosul;
if (1) {
    kosul = 'truthy';
}
if (0) {
    kosul = 'falsy';
}
alert(kosul);

Koşul ifadesini if (kosul) satırında yazmak yerine bir değişken değeri olarak ele almak daha yaygın bir kullanımdır.

let kosul = ( yas = prompt('Yaşınızı Giriniz', 20), +yas >= 15 );
if (kosul) {
    alert('Kimlik kartınızda fotoğraf olmak zorundadır.');
}

Bir değişkenin tipini kontrol edip değiştirelim. Örnek.

let telefon = prompt('Telefon No Giriniz', 5554443322) ;
if (typeof telefon == 'string') {
    telefon = Number(telefon);
    //veya telefon = +telefon
    alert(typeof telefon);
}

if blokları iç içe kullanılabilir. 'nested' olarak adlandırılan bu yapılarda unutulmaması gereken dıştaki if bloğundaki koşul gerçekleşmezse içerideki if bloklarındaki koşulların bir öneminin olmadığıdır.

let saat = prompt('Saati örneğe uygun olarak giriniz.', '17.00');
let onay = confirm("12'lik Düzene Çevrilsin mi?");
if (onay) {
    if (saat.slice(0.2) >= 12) {
        saat = saat.slice(0,2) - 12 + saat.slice(2) + ' Ö.S.'
    }
    if (saat.slice(0.2) < 12) {
        saat = saat + ' Ö.Ö'
    }
}
alert(saat);

Aynı ifade şu şekilde de kodlanabilir.

let saat = prompt('Saati örneğe uygun olarak giriniz.', '17.00');
let onay = confirm("12'lik Düzene Çevrilsin mi?");
if (onay) {
    saat.slice(0,2) >= 12 ? saat = saat.slice(0,2) - 12 + saat.slice(2) + ' Ö.S.'
                          : saat = saat + ' Ö.Ö';
}
alert(saat);

Kodun okunurluğu açısından iki yazımı da değerlendiriniz.

Yukarıdaki iç içe if örneğinde gördüğünüz içteki ikinci if deyimi esasında gereksizdir. Koşulun gerçekleşmediği durumu yeni bir if bloğu ile kontrol etmeye gerek yoktur. Bunun için else deyimini kullanırız.

else Deyimi

if deyimi ile ifade ettiğimiz koşulun gerçekleşmediği durumlarda yapılacak işlemleri bir kod bloğu ile gerçekleştirmek için else deyimini kullanırız. Örnek.

let yas = prompt('Yaşınızı Giriniz', 20) ;
if (yas >= 15) {
    alert('Kimlik kartınızda fotoğraf olmak zorundadır.');
} else {
    alert('Kimlik kartınızda fotoğraf olmak zorunda değildir.');
}

Eğer yukarıdaki yas değişkeni için 15'ten daha küçük bir sayı girerseniz else bloğu yürütülür. Çünkü koşul doğrulanmaz ise (false) else bloğundaki kodlar yürütülür.

else bloğunun çalışma mantığı şu şekildedir.

let kosul = false;
if (kosul) {
    kosul = 'truthy';
} else {
    kosul = 'falsy';
}
alert(kosul);

İç içe if örneğini yeniden yazacak olursak.

let saat = prompt('Saati örneğe uygun olarak giriniz.', '17.00');
let onay = confirm("12'lik Düzene Çevrilsin mi?");
if (onay) {
    if (saat.slice(0.2) >= 12 {
        saat = saat.slice(0,2) - 12 + saat.slice(2) + ' Ö.S.'
    } else { //yeni koşula gerek yok.
        saat = saat + ' Ö.Ö'
    }
}
alert(saat);

else deyimi koşulun gerçekleştiği durum haricindeki her şeydir. Bu sebeple else deyiminin sadece iki ihtimalin olduğu veya son ihtimalin kaldığı durumlarda kullanılmasına dikkat edilmelidir.

else if Deyimi

else if deyimi koşulları birbirine bağlayıp sıralı şekilde işlemleri yaptırmak için kullanılır. Şu örneğe bir göz atalım.

let kanSayimi = prompt('Tam kan sayımı sonucunu giriniz', 310);
let degerlendirme;
if (kanSayimi <= 112) {
    degerlendirme = 'Düşük';
}
if (kanSayimi >= 112 && kanSayimi <= 508) {
    degerlendirme = 'Normal';
}
if (kanSayimi >= 508) {
    degerlendirme = 'Yüksek';
}
alert(degerlendirme);

Yukarıda birbirinden bağımsız if bloklarının hepsi yürütülür. Her blokta kanSayimi ile başlayan koşulu kontrol eder. Bu hem performansı etkileyen hem de yazımı zorlaştıran bir durumdur. Bunun yerine else if ile koşulları birbirine bağlayıp sadece koşulun sağlandığı bloğu yürütmek daha kullanışlıdır. Deneyiniz.

let kanSayimi = prompt('Tam kan sayımı sonucunu giriniz', 310);
let degerlendirme;
if (kanSayimi <= 112) {
    degerlendirme = 'Düşük';
} else if (kanSayimi <= 508){
    degerlendirme = 'Normal';
} else {
    degerlendirme = 'Yüksek';
}
alert(degerlendirme);

Eğer else if bloğu kullandıysanız sonunda kesinlikle else bloğu olmalıdır. Hiçbir koşulun sağlanmadığı durumu da else bloğu ile kesinlikle kontrol etmek zorundasınız. Bu sebeple en az üç ihtimalin olduğu durumlarda kullanmalısınız.

let cevap = prompt("Türkiye AB'ye girmeyi hangi yıl reddetmiştir?",'');
if (cevap > 1978) {
    alert('Daha geçmiş yıllarda..');
} else if (cevap < 1978) {
    alert('Daha sonraki yıllarda..');
} else {
    alert('Doğru');
}

Yukarıdaki örnek if else ile de yapılabilir fakat cevaba göre yürütülecek kodları farklılaştıramazsınız, tekil olur. Bu sebeple if-else-else if yapısı koşulların gerçekleşmediği durumlara göre kod yürütmek için oldukça elverişlidir.

if deyiminin satırındaki koşullar () arasına yazılmasa da çalışır fakat kodun okunurluğu açısından kullanmanız önerilir.

Eğer if-else-else if bloklarında tek satırlık kodlarınız var ise blok açmanıza gerek kalmadan tek satırda da yazabilirsiniz. Örnek.

let cevap = prompt("Türkiye AB'ye girmeyi hangi yıl reddetmiştir?",'');
if (cevap > 1978) alert('Daha geçmiş yıllarda..');
else if (cevap < 1978) alert('Daha sonraki yıllarda..');
else alert('Doğru');

Last updated