if,else ifveelseile dallanan kod yazmak- Koşulları
&&ve||ile birleştirmek - Üçlü operatör ve
switchiçin uygun durumları seçmek
Her gün onlarca karar verirsin: yağmur yağıyorsa şemsiye alırsın, saat geç olduysa taksi çağırırsın, bakiyen azsa alışverişi ertelersin. Programlar da bu tür kararları koşul ifadeleri sayesinde verir.
if: koşul doğruysa
if anahtar kelimesinden sonra parantez içine bir koşul yazılır; süslü parantezler { } içine de koşul doğruysa çalışacak kod, yani blok yazılır. Koşul yanlışsa blok atlanır ve program devam eder.
const temperature = 28;
if (temperature > 25) {
console.log('It is hot. Drink some water!');
}
console.log('Have a nice day');▸ Beklenen çıktı
It is hot. Drink some water! Have a nice day
temperature değerini 15 yap ve yeniden çalıştır: ilk mesaj kaybolacak.else ve else if
else bloğu koşul yanlış olduğunda çalışır. İkiden fazla seçenek varsa else if ile yeni koşullar eklenir. JavaScript koşulları yukarıdan aşağıya kontrol eder ve ilk doğru koşulun bloğunu çalıştırır; diğerlerine bakmaz.
const score = 78;
if (score >= 90) {
console.log('Excellent');
} else if (score >= 70) {
console.log('Good');
} else if (score >= 50) {
console.log('Satisfactory');
} else {
console.log('Try again');
}▸ Beklenen çıktı
Good
Koşulları birleştirmek
Birden fazla koşulu birleştirmek için mantıksal operatörler kullanılır: && (VE) iki koşulun da, || (VEYA) ise en az birinin doğru olmasını ister. Bir sinemanın hafta sonları 18 yaşından küçüklere indirim yaptığını düşünelim:
const age = 15;
const isWeekend = true;
if (age < 18 && isWeekend) {
console.log('Discount ticket: 3 AZN');
} else {
console.log('Regular ticket: 5 AZN');
}
const day = 'Sunday';
if (day === 'Saturday' || day === 'Sunday') {
console.log('No school today');
}▸ Beklenen çıktı
Discount ticket: 3 AZN No school today
&& operatörü AND kapısı gibi çalışır: çıkış yalnızca iki giriş de doğruyken doğrudur. OR kapısına geçip || ile karşılaştır.Üçlü operatör
İki değerden birini seçip bir değişkene yazman gerekiyorsa kısa bir yol var: koşul ? değer1 : değer2. Koşul doğruysa sonuç değer1, değilse değer2 olur. Üç parçadan oluştuğu için buna üçlü operatör (ternary) denir.
const hour = 20;
const greeting = hour < 12 ? 'Good morning' : 'Good evening';
console.log(greeting);
const items = 1;
console.log(`You have ${items} ${items === 1 ? 'item' : 'items'} in the basket`);▸ Beklenen çıktı
Good evening You have 1 item in the basket
switch: çok seçenek
Bir değişkeni birçok belirli değerle karşılaştırman gerektiğinde switch, uzun bir else if zincirinden daha okunaklıdır. Her case bir değeri kontrol eder (katı karşılaştırma === ile), break ise switch'ten çıkar. Hiçbir case uymazsa default bloğu çalışır.
const day = 'Saturday';
switch (day) {
case 'Saturday':
case 'Sunday':
console.log('Weekend!');
break;
case 'Friday':
console.log('Almost weekend');
break;
default:
console.log('Work day');
}▸ Beklenen çıktı
Weekend!
case 'Saturday': bir sonraki case ile aynı kodu paylaşır: iki değer için tek cevap.const light = 'yellow';
switch (light) {
case 'green':
console.log('Go');
case 'yellow':
console.log('Get ready');
case 'red':
console.log('Stop');
}▸ Beklenen çıktı
Get ready Stop
| Yapı | Ne zaman kullanılır |
|---|---|
if / else if / else | her türlü koşul: aralıklar (score >= 90), birden çok değişken, karmaşık kontroller |
? : | tek satırda iki değerden birini seçmek |
switch | bir değişkeni birçok belirli değerle karşılaştırmak |
score için harf notunu yazdır: 90 ve üzeri — A, 75 ve üzeri — B, 60 ve üzeri — C, diğer durumlarda — F. Sonra üçlü operatörle passed (puan 60 veya daha fazlaysa) ya da failed yazdır.
const score = 83;
// 1) print the grade: A, B, C or F
// 2) print passed or failed with the ternary operator▸ Beklenen çıktı
B passed
Önemli noktalar
ifbloğu yalnızca koşul doğruysa çalışır;elseise aksi durumda.- Bir
else ifzincirinde ilk doğru koşul kazanır; bu yüzden en katı koşul en üstte olmalıdır. &&iki koşulun da,||en az birinin doğru olmasını ister.- Üçlü operatör
koşul ? a : biki değerden birini seçer. switchdeğerleri===ile karşılaştırır; hercase'ibreakile bitir.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.
const x = 7; iken if (x > 10) { console.log('A'); } else { console.log('B'); } ne yazdırır?