Her programın tepki vermesi gerekir. Bir kullanıcı bir düğmeye tıklar. Bir API veri döndürür. Bir form alanı boşalır. Dallanma yolu olmasaydı, kodunuz gerçekte ne olup bittiğine bakılmaksızın satır satır çalışırdı. Koşullu ifadeler, JavaScript'e seçme yeteneği kazandırır. Onlar fonksiyonlarınızın karar vericileri, neyin çalışacağına ve neyin atlanacağına karar veren kapı bekçileridir. Onları nasıl iyi yazacağınızı bir kez anladığınızda, katı betikler yazmayı bırakır ve gerçekten tepki veren yazılımlar inşa etmeye başlarsınız.

Koşullu İfadeler Neden Önemlidir

Kontrol akışı, mantığın bel kemiğidir. Şifreleri bir sunucuya göndermeden önce doğrulamak için koşullu ifadeleri kullanırsınız. Vergi hesaplamadan önce bir alışveriş sepetinin boş olup olmadığını kontrol edersiniz. Boş bir ekran yerine bir hata göstermek için bir ağ isteğinin başarısız olup olmadığını tespit edersiniz. Tüm bu senaryolar aynı basit fikre dayanır: bir şeyi değerlendir, ardından buna göre hareket et.

Koşullu ifadeler olmasaydı, uygulamanız bir diyalogdan ziyade bir monolog olurdu. Farklı veri senaryolarını işleyemez, hataları düzgün bir şekilde yönetemez veya kullanıcı eylemlerine anlamlı bir şekilde tepki veremezdi. Koşullu ifadeler, programınızın gerçek dünyadaki belirsizlikler altında nasıl çalışacağını kontrol etmenizi sağlar.

Temel if İfadesi

Başlamak için en basit yer bağımsız if ifadesidir. "Eğer bu şey doğruysa, bu işi yap" der. Hepsi bu. Yedek bir plan yok, alternatif bir yol yok.

if (x % 2 === 0) {
    console.log("Even");
}

Bu kod parçasında, modül operatörü x değerinin ikiye tam bölünüp bölünmediğini kontrol eder. Kalan sıfır olduğunda, konsol dizgiyi (string) yazdırır. Eğer x tek sayıysa hiçbir şey olmaz. Blok görmezden gelinir ve yürütme aşağıdan devam eder.

Bu sessizce görmezden gelme durumu önemlidir. Bazen sadece tek bir eylemi korumak istersiniz. Belki de bir düğmeye sadece aktif olduğunda bir CSS sınıfı eklemek veya bir diziye (array) sadece girdi boş değilse bir öğe eklemek istersiniz. Yalın bir if ifadesi, sizi ihtiyacınız olmayan bir mantık yazmaya zorlamadan bu anları yönetir.

if-else ile Bir Alternatif Eklemek

Gerçek kararlar genellikle iki yönlüdür. Kullanıcı ya yeterince yaşlıdır ya da değildir. Ödeme ya başarılı olmuştur ya da başarısız olmuştur. if-else yapısı her ikisini de kapsar.

if (age >= 18) {
    console.log("Adult");
} else {
    console.log("Not an Adult");
}

else bloğu, ilk koşulun reddettiği her şeyi yakalar. Temiz bir ikili (binary) dallanma oluşturur. Bu desen; açma/kapama düğmeleri (toggles), izinler ve özellik bayrakları (feature flags) için iyi çalışır. Her bloğun içindeki mantığı odaklanmış tutun. Eğer kendinizi tek bir dala çok fazla görev yığarken bulursanız, bu genellikle işi daha küçük fonksiyonlara bölmeniz gerektiğine dair bir işarettir.

else if ile Birden Fazla Yolu Kontrol Etmek

Hayat nadiren sadece iki seçenek sunar. Bir sayıyı pozitif, negatif veya sıfır olarak kategorize etmeniz gerekebilir. Ağırlık aralıklarına göre bir nakliye ücreti atayabilirsiniz. Sıralı, çoklu karşılaştırmalar için else if kullanın.

if (x > 0) {
    console.log("Positive");
} else if (x < 0) {
    console.log("Negative");
} else {
    console.log("Zero");
}

JavaScript bunları yukarıdan aşağıya doğru değerlendirir. Bir koşul geçer geçmez, o bloğu çalıştırır ve geri kalanını görmezden gelir. Sıralama önemlidir. Eğer x > 100 kontrolünden sonra x > 0 kontrolünü yaparsanız, daha gevşek olan kontrol onu önce yakalayacağı için daha katı olan kontrol asla çalışmaz. else if yapısını bir öncelik listesi gibi düşünün.

switch İfadesi

Bir değeri birçok farklı seçenekle karşılaştırdığınızda, uzun bir else if zinciri tekrarlayıcı gelebilir. Bir switch ifadesi bunu temizler. Bir ifadeyi case yan tümceleriyle eşleştirir ve eşleşen bloğu çalıştırır.

switch (true) {
    case marks >= 90:
        Branch = "Computer science";
        break;
    case marks >= 80:
        Branch = "Mechanical";
        break;
    default:
        Branch = "Other";
}

Bu örnek, mantığınız tam eşitlikten ziyade aralıklara dayanıyorsa yaygın bir JavaScript deseni olan switch(true) yapısını kullanarak boolean koşulları doğrudan değerlendirir. break anahtar kelimesi esastır. O olmadan, yürütme eşleşip eşleşmediğine bakılmaksızın bir sonraki case bloğuna sarkar ki bu, burada nadiren istediğiniz bir durumdur. default yan tümcesi, önceki case'lere uymayan her şeyi yakalayan son bir else gibi davranır.

Switch, net ve sabit seçenekleriniz olduğunda parlar. Özellikle her dal sadece bir değer atıyor veya tek bir fonksiyon çağırıyorsa, uzun bir else if bloğu yığınına kıyasla taranması genellikle daha kolaydır.

Ternary (Üçlü) Operatör

Kısa ikili kararlar için ternary operatörü işleri kompakt tutar. Üç işlenen (operand) alır: bir koşul, doğruysa bir değer ve yanlışsa bir değer.

const result = (age >= 18) ? "Eligible" : "Not eligible";

Bunu hızlı atamalar veya satır içi (inline) dönüşler için kullanabilirsiniz. Sonuç basit bir ifade olduğunda iyi çalışır. Ternary ifadeleri üç seviye derinliğe kadar iç içe geçirme isteğine direnç gösterin. İç içe geçmiş bir ternary satır tasarrufu sağlayabilir ancak okunabilirliği feda eder. Mantığınız büyüdüğünde, bir if-else bloğu dosyayı açan bir sonraki geliştirici için genellikle daha nazik bir yaklaşımdır.

İç İçe Kararlar

Karmaşık mantık bazen takip soruları sormayı gerektirir. Bir kararı netleştirmek için bir if ifadesini başka bir if ifadesinin içine yerleştirebilirsiniz.

if (weather === "sunny") {
    if (temp > 30) {
        console.log("