Pernyataan Bersyarat di JavaSkrip: jika, jika tidak, dan jika tidak jika
⚡ Ringkasan Cerdas
Pernyataan bersyarat dalam JavaSkrip menentukan blok kode mana yang akan dijalankan dengan menguji suatu kondisi, dan bentuk if, if…else, dan if…else if…else mencakup hampir semua keputusan percabangan yang dibutuhkan oleh skrip pemula.
JavaPernyataan Kondisional Skrip
Pada dasarnya ada tiga jenis pernyataan kondisional JavaNaskah.
- jika Pernyataan: Pernyataan 'jika' mengeksekusi kode berdasarkan suatu kondisi.
- pernyataan if…else: Pernyataan if…else terdiri dari dua blok kode; ketika suatu kondisi benar, ia mengeksekusi blok kode pertama dan ketika kondisinya salah, ia mengeksekusi blok kode kedua.
- pernyataan if…else if…else: Ketika beberapa kondisi perlu diuji dan blok kode yang berbeda perlu dieksekusi berdasarkan kondisi mana yang benar, pernyataan if…else if…else digunakan.
Masing-masing dari ketiga bentuk tersebut akan dibahas di bawah ini beserta sintaks dan contoh yang dapat dijalankan. Aturan yang sama berlaku terlepas dari apakah skrip tersebut berada di... di dalam halaman atau di dalam file eksternal, dan apakah kondisi tersebut ditulis di tingkat teratas atau di dalam fungsi.
Cara Menggunakan Pernyataan Bersyarat
Pernyataan kondisional digunakan untuk menentukan aliran eksekusi berdasarkan kondisi yang berbeda. Jika suatu kondisi benar, Anda dapat melakukan satu tindakan, dan jika kondisi salah, Anda dapat melakukan tindakan lain.
Diagram di bawah ini menunjukkan ide tersebut sebagai persimpangan jalan: satu kondisi dievaluasi sekali, dan kendali berjalan ke cabang yang benar atau cabang yang salah, tidak pernah keduanya.
Pernyataan If
sintaks:
if(condition) { lines of code to be executed if condition is true }
Anda dapat menggunakan if pernyataan jika Anda hanya ingin memeriksa kondisi tertentu. Ketika ekspresi di dalam tanda kurung bernilai true, blok tersebut berjalan; ketika dievaluasi menjadi falsePenerjemah langsung melewati bagian itu dan naskah berlanjut ke pernyataan berikutnya.
Coba ini sendiri:
<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>
Contoh tersebut meminta pengunjung untuk memasukkan usia, kemudian menguji nilai tersebut dua kali: sekali untuk usia 18 tahun ke atas, dan sekali untuk usia di bawah 18 tahun. Karena dua pengujian terpisah if pernyataan digunakan sebagai pengganti elseKedua kondisi tersebut dievaluasi setiap kali halaman dimuat.
Padanan modernnya: Kode di atas tetap sama persis seperti yang dipublikasikan. Pada versi terbaru JavaSkrip dengan logika yang sama seperti yang biasanya ditulis dengan let or const alih-alih var, dengan console.log() or textContent alih-alih document.write(), dan tanpa type="text/javascript" atribut, yang oleh HTML5 dibuat opsional.
Pernyataan Jika…Jika Tidak
sintaks:
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 }
Anda dapat menggunakan if...else Pernyataan ini berlaku jika Anda harus memeriksa satu kondisi dan menjalankan blok kode yang berbeda untuk setiap hasil. Tepat satu dari dua blok kode selalu dijalankan, sehingga tidak diperlukan pengujian kedua yang terpisah.
Coba ini sendiri:
<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>
Sini new Date().getHours() Mengembalikan jam saat ini pada jam browser sebagai angka dari 0 hingga 23. Nilai apa pun di bawah 12 menghasilkan ucapan selamat pagi, dan setiap nilai lainnya akan diteruskan ke else cabang.
Pernyataan Jika…Jika…Jika…Lainnya
sintaks:
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 }
Anda dapat menggunakan if...else if...else Gunakan pernyataan ini jika Anda ingin memeriksa lebih dari dua kondisi. Kondisi dievaluasi dari atas ke bawah, eksekusi berhenti pada kondisi pertama yang benar, dan kondisi terakhir else berfungsi sebagai penampung umum ketika tidak ada satu pun yang cocok.
Coba ini sendiri:
<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>
Perhatikan dua panggilan ke parseInt()Nilai yang dikembalikan oleh prompt() Karena berupa string, membandingkannya tanpa konversi akan membandingkan teks dan bukan angka, dan akan melaporkan "9" sebagai lebih besar dari "10".
Terner Operator: Singkatan dari if…else
Ketika sebuah if...else Blok hanya memilih antara dua nilai, operator kondisional (ternary) menyatakan keputusan yang sama seperti ekspresi tunggal. Ini adalah salah satunya. JavaOperator skrip yang menerima tiga operan: sebuah kondisi, tanda tanya, nilai yang digunakan ketika kondisi bernilai benar, titik dua, dan nilai yang digunakan ketika kondisi bernilai salah.
// 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";
Gunakan operator ternary ketika hal itu meningkatkan keterbacaan, bukan hanya untuk menghemat baris:
- Cocok untuk: Memilih salah satu dari dua nilai untuk ditetapkan, dikembalikan, atau dimasukkan ke dalam string templat.
- Tidak sesuai: Cabang yang menjalankan beberapa pernyataan, memanggil fungsi untuk efek sampingnya, atau membutuhkan variabel lokalnya sendiri.
- Hindari penataan bersarang: Susunan tiga bagian di dalam susunan tiga bagian jauh lebih sulit dibaca daripada satu susunan saja.
else ifrantai.
Pernyataan switch vs if…else if…else
Sepanjang else if Rangkaian yang terus membandingkan variabel yang sama dengan nilai tetap yang berbeda biasanya lebih jelas jika switch pernyataan. Switch mengevaluasi ekspresinya sekali, lalu melompat ke yang sesuai. case; break mencegah eksekusi berlanjut ke kasus berikutnya, dan default memainkan peran terakhir else.
switch (day) { case "Sat": case "Sun": document.write("Weekend"); break; default: document.write("Weekday"); }
Kedua struktur tersebut tidak dapat saling menggantikan dalam setiap situasi:
| Titik perbandingan | jika…else jika…else | saklar |
|---|---|---|
| Jenis tes | Ekspresi boolean apa pun, termasuk rentang seperti hours<12 |
Kesetaraan hanya terhadap nilai-nilai tetap |
| Perbandingan yang digunakan | Operator apa pun yang Anda tulis | Perbandingan ketat, jadi "5" tidak cocok 5 |
| minat | Terbaik untuk beberapa kondisi yang tidak saling berkaitan | Paling cocok untuk banyak nilai dari satu variabel. |
| Kesalahan umum | Melupakan jejaknya else |
melupakan break, yang menyebabkan eksekusi gagal |
Nilai-nilai yang Benar dan Salah dalam JavaKondisi Skrip
Suatu kondisi tidak harus berupa perbandingan. JavaSkrip akan mengkonversi apa pun yang ditemukannya di dalam tanda kurung menjadi nilai boolean terlebih dahulu, itulah sebabnya if (name) Ini adalah kode yang valid. Hanya enam nilai yang dikonversi menjadi false: false, 0, string kosong, null, undefined, dan NaNSegala hal lainnya adalah benar, termasuk string tersebut. "0", sebuah array kosong, dan sebuah objek kosong.
Sebagian besar kesalahan bersyarat dalam skrip pemula berasal dari beberapa kesalahan berikut:
- Tugas alih-alih perbandingan:
if (x = 5)menetapkan dan selalu bernilai benar;if (x === 5)membandingkan. - Kejutan kesetaraan yang longgar:
==mengkonversi tipe sebelum membandingkan, jadi"" == 0Memang benar. Lebih suka===. - Kurung kurawal hilang: tanpa
{}hanya pernyataan tunggal berikutnya yang termasuk dalam cabang tersebut, persis seperti pada contoh di atas. - Input yang belum dikonversi: nilai dari
prompt()dan kolom formulir berupa string hinggaparseInt()orNumber()mengubah mereka. - Cabang yang tidak dapat dijangkau: di
else ifDalam suatu rangkaian, tempatkan kondisi yang paling sempit terlebih dahulu, atau pengujian yang lebih luas di awal akan selalu menang.

