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.

  • 🔘 Sözdizimi: Bir if ifadesi, yalnızca parantez içindeki koşul doğru olduğunda bloğunu çalıştırır.
  • ☑️ İki şube: Eğer…else yapısı, koşul yanlış olduğunda çalışan bir yedek blok sağlar.
  • Birçok şube: Else if yapısını zincirleme olarak kullanmak, birkaç koşulu sırayla test eder ve ilk eşleşmede durur.
  • 🧪 Steno: Üçlü operatör, basit bir if…else yapısını değer döndüren tek bir ifadeye dönüştürür.
  • Alternatif: Switch ifadesi, uzun bir zincire kıyasla bir değeri birçok sabit seçenekle daha düzenli bir şekilde karşılaştırır.
  • 📊 Tuzaklar: Yanlış değerler, gereksiz atama operatörleri ve eksik parantezler, koşullu ifadelerdeki hataların çoğuna neden olur.

Koşullu İfadeler JavaSenaryo

JavaKomut Dosyası Koşullu İfadeleri

Temel olarak üç tür koşullu ifade vardır: JavaSenaryo.

  1. if Bildirimi: 'İf' ifadesi, bir koşulu temel alarak kodu çalıştırır.
  2. 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.
  3. 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.

Akış şeması gösteren bir JavaKomut dosyası koşulu, doğru bir yola ve yanlış bir yola ayrılıyor.

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 if zinciri.

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 "" == 0 Doğ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() or Number() onları dönüştürür.
  • Ulaşılamayan dallar: bir bölgesindeki else if Zincirleme reaksiyonda, en dar koşulu önce yerleştirin veya daha geniş kapsamlı, daha erken yapılan bir test her zaman kazanacaktır.

SSS

Tek = Bir değer atar ve tesadüfen koşulu doğru hale getirir. == Türleri dönüştürdükten sonra karşılaştırma yapar, bu yüzden "" == 0 doğru. === Değer ve türü birlikte karşılaştırır ve daha güvenli olan varsayılan değerdir.

Yapay zekâ asistanları, bilinmeyen bir cümleyi yeniden ifade edebilir. else if Basit bir dille zinciri açıklayın, her bir dala ulaşan giriş değerlerini önerin ve asla doğru olamayacak bir koşulu işaretleyin. Açıklama bir öneri niteliğinde olduğundan, kodu her zaman kendiniz çalıştırın.

Çoğu zaman evet. GitHub Yardımcı Pilotu Yorum satırından veya kısmi koşuldan dallanan kodu tamamlar. Oluşturulan sınır değerlerini kontrol edin, çünkü > ihtiyacınız olan yerde >= Gözden kaçırmak kolaydır.

Dil sınırlaması yoktur. Herhangi bir ifade, bir dalın içinde yer alabilir; buna ek olarak başka bir ifade de dahil. ifİki seviyenin ötesinde mantığı takip etmek zorlaşıyor, bu nedenle testleri şunlarla birleştirin: && veya bunun yerine erken dönün.

Hayır. Süslü parantezler olmadan, dal yalnızca sonraki tek ifadeye sahip olur; bu nedenle yukarıdaki örnekler çalışır. Süslü parantez eklemek yine de önerilir, çünkü daha sonra eklenen ikinci bir satır sessizce dalın dışında kalır.

&& Bu ancak her iki taraf da dürüst olduğunda doğrudur ve || Bu, her iki taraf da doğru olduğunda geçerlidir. Her ikisi de kısa devre yapar: sonuç zaten belirlendikten sonra sağ taraf asla değerlendirilmez.

getHours() Bu fonksiyon, ziyaretçinin kendi saatine göre geçerli saati 0 ile 23 arasında bir sayı olarak döndürür; bu nedenle 12 ile karşılaştırma, günü herhangi bir ek işleme gerek kalmadan sabah ve öğleden sonra olarak ayırır.

Hayır. JavaKomut dosyası iki ayrı anahtar kelime kullanıyor, else ifAralarında boşluk bulunan tek kelime. elseif PHP ve bazı şablon dillerine ait bir kod parçasıdır ve tarayıcıda sözdizimi hatası verir.

Bu yazıyı şu şekilde özetleyin: