Javascript Koşullu İfadeler, bir programın belirli durumlara göre farklı sonuçlar üretmesini sağlar. Bu ifadeler, kullanıcı girdilerine veya programın akışına göre karar verme süreçlerini yönetir. JavaScript koşullu ifadeler şunlardır:
- if
- if-else
- if-else if-else
- switch
- Ternary (üçlü) Operatör
1. if İfadesi
JavaScript’te if koşulu, programın bir durumu veya şartı kontrol etmesini sağlar. Bir şeyin doğru olup olmadığını test eder ve sadece doğruysa (true) belirli kodları çalıştırır.
Sözdizimi:
1 2 3 | if (koşul) { // Koşul doğruysa bu kod çalışır. } |
if koşulunun kullanımı için bir örnek hazırlayalım.
1 2 3 4 5 | let havaDurumu = "güneşli"; if (havaDurumu === "güneşli") { console.log("Bugün dışarı çıkmak için harika bir gün!"); } |
Kodun Çalışma Mantığı:
- Başlangıç Değeri:
Kod, öncehavaDurumu
adlı bir değişkene"güneşli"
değerini atar. Yani hava şu an güneşli. - If Koşulu Kontrol Edilir:
Program,if (havaDurumu === "güneşli")
ifadesine gelir ve bu koşulu kontrol eder:- Koşul:
havaDurumu === "güneşli"
- Bu ifade doğrudur, çünkü
havaDurumu
değişkeninin değeri"güneşli"
dir ve koşul sağlanır.
- Koşul:
- If Bloğu Çalışır:
Koşul doğru olduğu içinif
bloğunun içindeki kod çalışır ve “Bugün dışarı çıkmak için harika bir gün!” mesajı ekrana yazdırılır. - Else Olmadığı İçin:
Bu kodda birelse
bloğu bulunmadığından, koşul doğru olmadığında yapılacak başka bir işlem tanımlı değildir. Yani koşul yanlış olsaydı, program hiçbir şey yazdırmazdı.
Günlük Hayattan Benzetme:
Bir arkadaşınız size hava durumu soruyor ve ona “güneşliyse dışarı çıkabiliriz” diyorsunuz:
- Eğer hava güneşliyse: “Bugün dışarı çıkmak için harika bir gün!” diyorsunuz.
- Eğer güneşli değilse: Sessiz kalıyorsunuz çünkü başka bir tepki vermiyorsunuz.
Peki bu if koşulunu sorgularken neden “===” kullandık? Eğer bu konuda fikriniz yoksa hiç endişelenmeyin. Operatörler konumuzu okuyarak fikir sahibi olabilirsiniz. Şimdi ise ufak bir kaç trick ile mantığını anlayabilirsiniz.
JavaScript’te ===
ve ==
iki farklı eşitlik kontrol operatörüdür.
Diyelim ki bir kutu var ve içinde “5” yazıyor.
===
: Kutunun içindeki şey tam olarak nedir? (Yazı mı? Sayı mı?).==
: Kutunun içinde ne yazıyor? (Türüne bakmaz, sadece “5 mi?”).
===
(Sıkı Eşitlik Operatörü)- Değerlerin hem türünü hem de içeriğini kontrol eder.
- Eğer iki şeyin türü (number, string vs.) ve değeri aynı değilse, sonuç false olur.
- 1235 === 5; // true (Çünkü ikisi de sayı ve değerleri aynı)5 === "5"; // false (Çünkü biri sayı, diğeri string)"merhaba" === "merhaba"; // true (İkisi de string ve değerleri aynı)
==
(Gevşek Eşitlik Operatörü)- Sadece değerlere bakar, türleri önemsemez.
- Türler farklıysa, JavaScript otomatik olarak tür dönüşümü yapar ve sadece içeriği karşılaştırır.
- 1235 == 5; // true (Değerler aynı)5 == "5"; // true (Türler farklı ama JavaScript bunu dönüştürüp karşılaştırıyor)"merhaba" == "merhaba"; // true (Değerler aynı)
Eğer kesin bir karşılaştırma istiyorsan, ===
kullan. Eğer biraz daha esnek bir karşılaştırma istiyorsan, ==
kullan.
Ama genelde ===
önerilir çünkü daha güvenlidir.
2. if-else İfadesi
if‘in yetmediği durumlarda, yani bir koşulun doğru olmadığında ne yapılacağını da belirlemek istediğimizde kullanılır. Koşul yanlışsa (false), alternatif bir kod bloğu çalıştırır.
- Eğer doğruysa (true) bir kod bloğunu çalıştırır.
- Eğer yanlışsa (false) başka bir kod bloğunu çalıştırır.
Sözdizimi:
1 2 3 4 5 | if (koşul) { // Koşul doğruysa bu kod çalışır. } else { // Koşul yanlışsa bu kod çalışır. } |
if-else koşulunun kullanımı için bir örnek hazırlayalım.
1 2 3 4 5 6 7 | let saat = 20; if (saat < 12) { console.log("Günaydın!"); } else { console.log("İyi akşamlar!"); } |
Kodun Çalışma Mantığı:
- Başlangıç Değeri:
Kod, öncesaat
değişkenine bir değer atar. Buradasaat = 20
olarak ayarlanmış, yani saat 20:00. - If Koşulu Kontrol Edilir:
Program,if (saat < 12)
ifadesine gelir ve bu koşulu kontrol eder:- Koşul:
20 < 12
- Bu ifade yanlıştır çünkü 20, 12’den küçük değildir.
- Koşul:
- Else Bloğu Çalışır:
Çünküif
koşulu yanlış çıktı. Program,else
kısmına geçer ve “İyi akşamlar!” mesajını yazdırır.
Günlük Hayattan Benzetme:
Diyelim ki birisine saati soruyorsunuz ve ona göre selam vereceksiniz:
- Eğer saat 12’den küçükse (örneğin sabah 9): “Günaydın!” dersiniz.
- Eğer saat 12’den büyükse (örneğin akşam 20): “İyi akşamlar!” dersiniz.
3. if-else if-else İfadesi
If-Else If-Else yapısı, birden fazla durumu kontrol etmek istediğimizde kullanılır. Bu yapı, farklı koşulları sırayla kontrol eder ve bir koşul doğru olduğunda, yalnızca o koşula bağlı kod çalışır. Eğer hiçbir koşul doğru değilse, else kısmı çalışır.
Sözdizimi:
1 2 3 4 5 6 7 | if (koşul1) { // Koşul1 doğruysa bu kod çalışır. } else if (koşul2) { // Koşul2 doğruysa bu kod çalışır. } else { // Yukarıdaki koşulların hiçbiri doğru değilse bu kod çalışır. } |
if else if else koşulunun kullanımı için bir örnek hazırlayalım.
1 2 3 4 5 6 7 8 9 | let yemek = "makarna"; if (yemek === "pizza") { console.log("Pizza sipariş ettiniz."); } else if (yemek === "makarna") { console.log("Makarna sipariş ettiniz."); } else { console.log("Menüde istediğiniz bir şey yok. Restorandan ayrıldınız."); } |
Kodun Çalışma Mantığı:
if
kısmı:
yemek === "pizza"
kontrol edilir. Eğer doğruysa, “Pizza sipariş ettiniz.” yazdırılır ve program buradan sonra diğer koşullara bakmaz.else if
kısmı:
Eğer pizza yoksa,yemek === "makarna"
kontrol edilir. Bu doğruysa, “Makarna sipariş ettiniz.” yazdırılır.else
kısmı:
Eğer yukarıdaki hiçbir koşul doğru değilse, “Menüde istediğiniz bir şey yok. Restorandan ayrıldınız.” yazdırılır.
Günlük Hayattan Benzetme:
Bir restorana gittiniz ve menüden yemek siparişi vereceksiniz:
- Eğer pizza varsa: Pizza sipariş edin.
- Eğer pizza yoksa, ama makarna varsa: Makarna sipariş edin.
- Eğer hiçbir şey yoksa: Restorandan ayrılın.
4. switch İfadesi
Switch ifadesi, birden fazla durumu (koşulu) kontrol etmek için kullanılan bir yapıdır. Birden fazla if-else if-else yazmak yerine daha okunabilir bir yapı sağlar. Özellikle kontrol edilecek birçok seçenek olduğunda kullanışlıdır.
- Bir değeri alır ve bu değerin farklı durumlara eşit olup olmadığını kontrol eder.
- Her bir durum için bir case (durum) tanımlanır.
- Eğer bir durum doğruysa, o duruma ait kod çalışır.
- Default: Hiçbir durum doğru değilse, varsayılan kod (default) çalışır.
Sözdizimi:
1 2 3 4 5 6 7 8 9 10 | switch (ifade) { case değer1: // ifade değer1'e eşitse bu kod çalışır. break; case değer2: // ifade değer2'ye eşitse bu kod çalışır. break; default: // Hiçbir eşleşme yoksa bu kod çalışır. } |
switch ifadesi koşulunun kullanımı için bir örnek hazırlayalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | let secim = 2; switch (secim) { case 1: console.log("Çay alındı."); break; case 2: console.log("Kahve alındı."); break; case 3: console.log("Meyve suyu alındı."); break; default: console.log("Geçersiz seçim."); } |
Kodun Çalışma Mantığı:
- Değer Kontrol Edilir:
switch (secim)
ifadesi,secim
değişkeninin değerini kontrol eder. - Case’lere Bakılır:
case 1:
kontrol edilir. Eğersecim
1’e eşitse, “Çay alındı.” yazdırılır ve işlem sonlanır.case 2:
kontrol edilir. Eğersecim
2’ye eşitse, “Kahve alındı.” yazdırılır ve işlem sonlanır.case 3:
kontrol edilir. Eğersecim
3’e eşitse, “Meyve suyu alındı.” yazdırılır ve işlem sonlanır.
- Break:
Hercase
‘in sonundabreak
ifadesi vardır. Bu, doğru bir case bulunduğunda işlemi sonlandırır ve diğer case’lere bakılmasını engeller. - Default:
Eğer hiçbircase
doğru değilse,default
bloğu çalışır ve “Geçersiz seçim.” yazdırılır.
Günlük hayattan benzetme:
secim = 2
olduğu için “Kahve alındı.” yazılır.
Gerçek hayatta:- Kasiyer: “Kahve siparişiniz alındı.”
Eğer menüde olmayan bir şey isteseydiniz (secim = 5
gibi), kasiyer size “Bu içeceği servis edemiyoruz.” diyerek yardımcı olurdu.
5. Ternary (Üçlü) Operatör
Ternary (üçlü) operatör, JavaScript’te bir koşulu kısa ve okunabilir bir şekilde yazmak için kullanılan bir ifadedir. Basit bir if-else kontrolünü tek satırda yazmanıza olanak tanır. Hadi detaylıca inceleyelim.
- Koşul (Condition): Kontrol etmek istediğiniz ifade.
- DoğruysaBuDeğer: Koşul doğruysa (true) döndürülecek ifade.
- YanlışsaBuDeğer: Koşul yanlışsa (false) döndürülecek ifade.
Sözdizimi:
1 | koşul ? doğruysa_bu : yanlışsa_bu; |
üçlü operatör için bir örnek inceleyelim.
1 2 3 4 5 | let yaş = 18; let mesaj = yaş >= 18 ? "Ehliyet alabilirsiniz." : "Ehliyet alamazsınız."; console.log(mesaj); // Çıktı: Ehliyet alabilirsiniz. |
Kodun çalışma mantığı:
let yaş = 18;
– Bu satır,yaş
değişkenine 18 değerini atar.let mesaj = yaş >= 18 ? "Ehliyet alabilirsiniz." : "Ehliyet alamazsınız.";
– Bu satırda ternary operatorü (?
ve:
) kullanılarak bir koşul kontrol edilir. Ternary operatorü, bir if-else yapısına benzer şekilde çalışır ancak daha kısa ve öz bir yazım sunar.yaş >= 18
– Bu, kontrol edilen koşuldur. Eğeryaş
değişkeni 18’e eşit veya büyükse, koşul doğru (true) olur."Ehliyet alabilirsiniz."
– Koşul doğruysa (yaş >= 18), bu değermesaj
değişkenine atanır."Ehliyet alamazsınız."
– Koşul yanlışsa (yaş < 18), bu değermesaj
değişkenine atanır.
console.log(mesaj);
– Bu satır,mesaj
değişkeninin içeriğini konsola yazdırır.
Günlük hayattan benzetme:
Diyelim ki bir ülkede ehliyet almak için yaş sınırı 18. Ehliyet ofisine gittiğinizde yaşınızı kontrol ediyorlar:
- Eğer 18 yaşında veya daha büyük iseniz, size “Ehliyet alabilirsiniz.” derler.
- Eğer 18 yaşından küçük iseniz, size “Ehliyet alamazsınız.” derler.
Bu durum tam olarak koddaki mantığa benzer.
Kalbim koşulsuz şartsız sevgiye aç, sıcacık bir kucaklama arıyor. Fakat parmaklarım klavyeye yapışmış, kod yazmaktan kendimi alamıyorum. Sanki bir büyü var, satırlar arasında kayboluyorum. Mantığım durmamı söylese de, içimdeki kodlama tutkusu beni esir alıyor. Bu ikilem arasında sıkışıp kaldım. Ne yapacağımı bilemez haldeyim. Belki de bir denge kurabilirim, zamanla.
Javascript’in koşullu ifadeleri bile olsa size sevgim koşulsuz…