if - else - else if
Javascript'te bu ifadeleri yazarken küçük harflerle yazdığınıza emin olunuz.
if
Deyimi
if
Deyimiif
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
else
Deyimiif
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
Deyimielse 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.
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