Programlama dünyasında en önemli kavramlardan biri karar verme yani bilgisayarın bazı durumlara göre farklı davranmasını sağlamaktır. Bu durum, gerçek hayatta bizim verdiğimiz kararlarla büyük benzerlik gösterir. Örneğin:
- Ders çalışıp çalışmamaya karar verirken saat kaç olduğuna bakarız.
- Yağmur yağıyorsa dışarı çıkarken şemsiye alırız.
- Bir arkadaşımıza mesaj atıp atmamaya, onun çevrimiçi olup olmamasına göre karar veririz.
JavaScript gibi programlama dilleri de, bu tarz koşullara göre davranmak için karar yapıları kullanır. Bu sayede yazdığımız programlar “akıllı” hale gelir ve kullanıcıya göre farklı sonuçlar gösterebilir.
Karar Yapılarının Amacı
Programda bir durum doğruysa (örneğin kullanıcı giriş yapmışsa), bir işlem yapılır. Eğer bu durum doğru değilse, başka bir işlem yapılır. Bu şekilde farklı koşullara uygun farklı sonuçlar üretilebilir.
JavaScript’te en sık kullanılan karar yapıları şunlardır:
Bu yapılarla, programın akışını kontrol edebilir, farklı senaryolarda farklı kodların çalışmasını sağlayabiliriz.
Kararların Temeli: Karşılaştırma Operatörleri
Karar verme yapılarında “koşul” dediğimiz şey aslında bir karşılaştırmadır. Yani iki şeyi birbirine kıyaslar ve doğru (true) mu yoksa yanlış (false) mu olduğunu kontrol ederiz. Bu kıyaslamaları yapmak için karşılaştırma operatörleri kullanılır.
En Sık Kullanılan Karşılaştırma Operatörleri:
Operatör | Anlamı | Örnek | Açıklama |
=== | Eşit mi? (Tip kontrolüyle) | x === 5 | x tam olarak 5 mi? |
!== | Eşit değil mi? | y !== "merhaba" | y “merhaba” değilse |
> | Büyüktür | sayi > 10 | sayı 10′dan büyük mü? |
< | Küçüktür | yas < 18 | yaş 18′den küçük mü? |
>= | Büyük eşit mi? | puan >= 50 | puan en az 50 mi? |
<= | Küçük eşit mi? | stok <= 0 | stok sıfır veya daha az mı? |
Bu operatörler sayesinde, “if” içinde hangi durumların kontrol edileceğini belirleriz.
1. if
Yapısı – En Temel Karar
if
, “eğer” anlamına gelir. Eğer bir koşul doğruysa, süslü parantezler {}
arasındaki kod çalışır. Aksi halde kod çalışmaz.
Örnek:
let sicaklik = 35;
if (sicaklik > 30) {
console.log("Bugün hava çok sıcak. Gölgelik bir yer bul.");
}
Burada > karşılaştırma operatörü kullanılmıştır. Eğer sıcaklık 30’un üzerindeyse, mesaj gösterilir.
2. else
Yapısı – Alternatif Karar
if
ile kontrol ettiğimiz koşul doğru değilse, else
bloğu çalışır. Yani bir “aksi halde” durumu tanımlarız.
Örnek:
let notOrtalamasi = 48;
if (notOrtalamasi >= 50) {
console.log("Sınıfı geçtin.");
} else {
console.log("Sınıfı geçemedin, tekrar denemelisin.");
}
= operatörü ile notun 50 veya daha fazla olup olmadığına bakıyoruz.
3. else if
– Birden Fazla Durumu Kontrol Etmek
Bazı durumlarda sadece iki seçenek yetmez. Üç, dört veya daha fazla olasılığı kontrol etmek isteriz. Bu gibi durumlarda else if
kullanılır.
Örnek:
let puan = 76;
if (puan >= 90) {
console.log("Pekiyi");
} else if (puan >= 70) {
console.log("İyi");
} else if (puan >= 50) {
console.log("Geçer");
} else {
console.log("Başarısız");
}
Burada puanın hangi aralıkta olduğuna göre not dereceleri belirleniyor. Her satırda >= operatörüyle kıyaslama yapılıyor.
4. Gerçek Hayat Uygulaması: Giriş Kontrolü
Bir web sitesinde kullanıcı giriş yaptıysa farklı bir ekran gösterilir, yapmadıysa başka bir ekran. Bu da karar yapılarıyla gerçekleştirilir.
Örnek:
let kullaniciGirisi = false;
if (kullaniciGirisi === true) {
console.log("Hoş geldiniz, profilinize yönlendiriliyorsunuz.");
} else {
console.log("Lütfen giriş yapınız.");
}
Burada === operatörü kullanılarak değişkenin değeri tam olarak true mü diye kontrol edilir.
5. switch
Yapısı – Çoklu Karar Durumları İçin
switch
, bir değişkenin farklı değerlerine göre farklı kodların çalışmasını sağlar. Bu yapı, else if
gibi birden fazla durumu kontrol ederken daha düzenli bir görünüm sunar.
Örnek:
let gun = "Çarşamba";
switch (gun) {
case "Pazartesi":
console.log("Haftaya yeni başladık.");
break;
case "Çarşamba":
console.log("Hafta ortası, az kaldı.");
break;
case "Cuma":
console.log("Hafta sonu yaklaşıyor.");
break;
default:
console.log("Sıradan bir gün.");
}
switch, kontrol edilen değişkenin değerine göre uygun mesajı gösterir. === gibi çalışır ama daha okunaklıdır.
Karar Yapıları Neden Önemlidir?
Karar yapıları olmadan programlarımız hep aynı şeyi yapar, hiçbir şekilde kullanıcıya ya da duruma göre tepki veremezdi. Bu yapılar sayesinde:
- Formlarda eksik bilgi varsa kullanıcı uyarılabilir,
- Şifre doğru girildiyse giriş yapılabilir,
- Farklı butonlara basıldığında farklı işlemler yapılabilir,
- Hatalı işlemlerde uyarı verilebilir.
Tüm bu kararlar, karşılaştırma operatörleri ile koşullar oluşturularak yapılır.
Sonuç
JavaScript’te karar verme yapıları, programlarımızı daha dinamik ve akıllı hale getirir. Ancak bu yapılar, karşılaştırma operatörleri olmadan işe yaramaz. Çünkü hangi durumda ne olacağını belirlemek için önce bir “karşılaştırma” yapmamız gerekir.
Bu nedenle if, else, switch gibi yapılarla birlikte ===
, !==
, >
, <
gibi operatörleri çok iyi bilmek gerekir.
Bir sonraki adımda bu yapıları daha etkileşimli formlarda, mini projelerde ve gerçek dünya uygulamalarında kullanmayı öğrenebiliriz.