Koşullu İfadeler JavaKomut dosyası: if, else ve else if
⚡ Akıllı Özet
Koşullu ifadelerde JavaKomut dosyaları, bir koşulu test ederek hangi kod bloğunun çalışacağına karar verir ve if, if…else ve if…else if…else yapıları, yeni başlayan bir komut dosyasının ihtiyaç duyabileceği hemen hemen her dallanma kararını kapsar.
JavaKomut Dosyası Koşullu İfadeleri
Temel olarak üç tür koşullu ifade vardır: JavaSenaryo.
- if Bildirimi: 'İf' ifadesi, bir koşulu temel alarak kodu çalıştırır.
- if…else Bildirimi: if…else ifadesi iki kod bloğundan oluşur; Bir koşul doğru olduğunda ilk kod bloğunu çalıştırır, koşul yanlış olduğunda ikinci kod bloğunu çalıştırır.
- if…else if…else İfadesi: Birden fazla koşulun test edilmesi gerektiğinde ve hangi koşulun doğru olduğuna bağlı olarak farklı kod bloklarının yürütülmesi gerektiğinde if…else if…else ifadesi kullanılır.
Aşağıda her üç biçim de sözdizimi ve çalıştırılabilir bir örnekle birlikte incelenmiştir. Komut dosyasının nerede bulunduğuna bakılmaksızın aynı kurallar geçerlidir. sayfa içinde veya harici bir dosyadave koşulun en üst düzeyde mi yoksa bir alt düzeyde mi yazıldığı işlev.
Koşullu İfadeler Nasıl Kullanılır?
Koşullu ifadeler, farklı koşullara dayalı olarak yürütme akışına karar vermek için kullanılır. Koşul doğruysa bir işlemi, koşul yanlışsa başka bir işlemi gerçekleştirebilirsiniz.
Aşağıdaki diyagram bu fikri bir yol ayrımı olarak göstermektedir: tek bir koşul bir kez değerlendirilir ve kontrol ya doğru kola ya da yanlış kola doğru ilerler, asla ikisine birden değil.
If İfadesi
Sözdizimi:
if(condition) { lines of code to be executed if condition is true }
Sen kullanabilirsiniz if Yalnızca belirli bir koşulu kontrol etmek istiyorsanız bu ifadeyi kullanın. Parantez içindeki ifade doğru değerlendirildiğinde trueBlok çalışır; doğru değerlendirildiğinde falseYorumlayıcı bunu doğrudan atlar ve metin bir sonraki ifadeye geçer.
Bunu kendiniz deneyin:
<html>
<head>
<title>IF Statments!!!</title>
<script type="text/javascript">
var age = prompt("Please enter your age");
if(age>=18)
document.write("You are an adult <br />");
if(age<18)
document.write("You are NOT an adult <br />");
</script>
</head>
<body>
</body>
</html>
Örnekte ziyaretçiden yaşını soruyor, ardından bu değeri iki kez test ediyor: birincisi 18 yaş ve üzeri için, ikincisi 18 yaş altı için. Çünkü iki ayrı test yapılıyor. if ifadeler bir yerine kullanılır. elseHer iki koşul da sayfa her yüklendiğinde değerlendirilir.
Modern karşılığı: Yukarıdaki kod, yayınlandığı haliyle aynen korunmuştur. Mevcut durumda JavaAynı mantık normalde şu şekilde yazılır: let or const yerine varIle console.log() or textContent yerine document.write()ve olmadan type="text/javascript" HTML5'in isteğe bağlı hale getirdiği özellik.
Eğer…Aksi Durum İfadesi
Sözdizimi:
if(condition) { lines of code to be executed if the condition is true } else { lines of code to be executed if the condition is false }
Sen kullanabilirsiniz if...else Eğer bir koşulu kontrol etmeniz ve her sonuç için farklı bir kod bloğu çalıştırmanız gerekiyorsa, bu ifadeyi kullanabilirsiniz. Her zaman iki kod bloğundan yalnızca biri çalışır, bu nedenle ayrı bir ikinci test gerekmez.
Bunu kendiniz deneyin:
<html>
<head>
<title>If...Else Statments!!!</title>
<script type="text/javascript">
// Get the current hours
var hours = new Date().getHours();
if(hours<12)
document.write("Good Morning!!!<br />");
else
document.write("Good Afternoon!!!<br />");
</script>
</head>
<body>
</body>
</html>
İşte new Date().getHours() Tarayıcı saatinin geçerli saatini 0 ile 23 arasında bir sayı olarak döndürür. 12'nin altındaki herhangi bir değer sabah selamını üretir ve diğer tüm değerler varsayılan değere geri döner. else dalı.
Eğer…Aksi Eğer…Aksi İfadesi
Sözdizimi:
if(condition1) { lines of code to be executed if condition1 is true } else if(condition2) { lines of code to be executed if condition2 is true } else { lines of code to be executed if condition1 is false and condition2 is false }
Sen kullanabilirsiniz if...else if...else İkiden fazla koşulu kontrol etmek istiyorsanız bu ifadeyi kullanın. Koşullar yukarıdan aşağıya doğru değerlendirilir, yürütme doğru olan ilk koşulda durur ve son koşulda işlem tamamlanır. else Hiçbiri uymadığında her şeyi kapsayan bir çözüm görevi görür.
Bunu kendiniz deneyin:
<html>
<head>
<script type="text/javascript">
var one = prompt("Enter the first number");
var two = prompt("Enter the second number");
one = parseInt(one);
two = parseInt(two);
if (one == two)
document.write(one + " is equal to " + two + ".");
else if (one<two)
document.write(one + " is less than " + two + ".");
else
document.write(one + " is greater than " + two + ".");
</script>
</head>
<body>
</body>
</html>
İki çağrıya dikkat edin. parseInt(). Tarafından döndürülen değerler prompt() Bunlar metin dizeleridir, bu nedenle dönüştürme yapılmadan karşılaştırılması sayılar yerine metinleri karşılaştırır ve "9"u "10"dan büyük olarak rapor eder.
Üçlü Operator: Eğer…aksi halde ifadesinin kısaltılmış hali
Ne zaman if...else Blok yalnızca iki değer arasında seçim yaparken, koşullu (üçlü) operatör aynı kararı tek bir ifade olarak ifade eder. İşte bu yüzden o kullanılır. JavaÜç işlenen alan komut dosyası operatörü: bir koşul, bir soru işareti, koşul doğru olduğunda kullanılan değer, iki nokta üst üste ve koşul yanlış olduğunda kullanılan değer.
// if...else form let message; if (age >= 18) { message = "adult"; } else { message = "minor"; } // same decision as a ternary expression let label = age >= 18 ? "adult" : "minor";
Üçlü operatörü yalnızca satır sayısını azaltmak için değil, okunabilirliği artırdığı durumlarda kullanın:
- İyi uyum: Şablon dizesine atanacak, döndürülecek veya eklenecek iki değerden birini seçmek.
- Kötü uyum: Birden fazla ifade çalıştıran, yan etkileri için fonksiyon çağıran veya kendi yerel değişkenlerine ihtiyaç duyan dallar.
- Yuvalamadan kaçının: Üçlü bir yapının içindeki başka bir üçlü yapıyı okumak, tek bir yapıdan çok daha zordur.
else ifzinciri.
switch ifadesi ile if…else if…else ifadesi arasındaki fark
Boyunca else if Aynı değişkeni farklı sabit değerlerle karşılaştırmaya devam eden bir zincir, genellikle şu şekilde daha anlaşılır: switch Bu switch ifadesi, ifadesini bir kez değerlendirir, ardından eşleşen ifadeye atlar. case; break Bu, işlemin bir sonraki vakaya geçmesini engeller ve default final rolünü oynar else.
switch (day) { case "Sat": case "Sun": document.write("Weekend"); break; default: document.write("Weekday"); }
Bu iki yapı her durumda birbirinin yerine kullanılamaz:
| Karşılaştırma noktası | eğer...else eğer...else | anahtar |
|---|---|---|
| Bir çeşit test | Aralıklar da dahil olmak üzere herhangi bir mantıksal ifade, hours<12 |
Sadece sabit değerlere karşı eşitlik |
| Kullanılan karşılaştırma | Hangi operatörü yazarsanız yazın | Kesin bir karşılaştırma, yani "5" eşleşmiyor 5 |
| okunabilirlik | Birkaç farklı rahatsızlık için en iyisi. | Bir değişkenin birçok değeri için en iyisi |
| Yaygın bir böcek | Takip edeni unutmak else |
unutma breakBu durum, işlemin başarısız olmasına neden olur. |
Doğru ve Yanlış Değerler JavaKomut Dosyası Koşulları
Bir koşulun mutlaka bir karşılaştırma olması gerekmez. JavaKomut dosyası, parantez içindeki her şeyi önce bir boolean değere dönüştürür, bu yüzden if (name) Geçerli bir koddur. Yalnızca altı değer yanlış değere dönüştürülebilir: false, 0, boş dize, null, undefined, ve NaNGeri kalan her şey gerçeğe yakındır, dize de dahil. "0", boş bir dizi ve boş bir nesne.
Yeni başlayanlar için yazılmış kodlardaki koşullu hataların çoğu, şu kısa hata listesinden kaynaklanır:
- Karşılaştırma yerine atama:
if (x = 5)atama yapar ve her zaman doğrudur;if (x === 5)karşılaştırır. - Eşitsizlik konusundaki gevşek yaklaşım sürprizler yarattı:
==Karşılaştırmadan önce türleri dönüştürür, bu nedenle"" == 0Doğru. Tercih et.===. - Diş telleri eksik: olmadan
{}Sadece bir sonraki tek ifade, yukarıdaki örneklerde olduğu gibi, dala aittir. - Dönüştürülmemiş giriş: gelen değerler
prompt()ve form alanları, ta ki...parseInt()orNumber()onları dönüştürür. - Ulaşılamayan dallar: bir bölgesindeki
else ifZincirleme reaksiyonda, en dar koşulu önce yerleştirin veya daha geniş kapsamlı, daha erken yapılan bir test her zaman kazanacaktır.

