Anda boleh menggunakan penyataan berbilang if...else if, seperti dalam bab sebelumnya, untuk melaksanakan berbilang cawangan. Walau bagaimanapun, ini bukan selalu penyelesaian terbaik, terutamanya apabila semua cawangan bergantung pada nilai pembolehubah tunggal.
Bermula dengan JavaScript 1.2, anda boleh menggunakannya untuk mengendalikan situasi ini dengan tepat, menggunakan pernyataan suis, yang melakukannya dengan lebih cekap jika dan bukannya berulang kali menggunakan pernyataan if...else if.
Tatabahasa
penyataan suis memberikan ungkapan untuk menilai dan mengira beberapa pernyataan berbeza berdasarkan nilai ungkapan tersebut. Jurubahasa menyemak setiap kes untuk nilai ungkapan sehingga padanan ditemui. Jika tiada padanan, syarat lalai akan digunakan.
switch (expression) { case condition 1: statement(s) break; case condition 2: statement(s) break; ... case condition n: statement(s) break; default: statement(s) }
break mengarahkan jurubahasa untuk menamatkan dalam keadaan tertentu. Jika ia ditinggalkan, jurubahasa akan terus melaksanakan setiap pernyataan dalam setiap kes berikut.
Kami akan menerangkan pernyataan putus dalam bab kawalan gelung.
Contoh:
Contoh berikut menggambarkan gelung semasa asas:
<script type="text/javascript"> <!-- var grade='A'; document.write("Entering switch block<br />"); switch (grade) { case 'A': document.write("Good job<br />"); break; case 'B': document.write("Pretty good<br />"); break; case 'C': document.write("Passed<br />"); break; case 'D': document.write("Not so good<br />"); break; case 'F': document.write("Failed<br />"); break; default: document.write("Unknown grade<br />") } document.write("Exiting switch block"); //--> </script>
Ini akan menghasilkan keputusan berikut:
Entering switch block Good job Exiting switch block
Contoh:
Pertimbangkan situasi sedemikian, jika pernyataan putus tidak digunakan:
<script type="text/javascript"> <!-- var grade='A'; document.write("Entering switch block<br />"); switch (grade) { case 'A': document.write("Good job<br />"); case 'B': document.write("Pretty good<br />"); case 'C': document.write("Passed<br />"); case 'D': document.write("Not so good<br />"); case 'F': document.write("Failed<br />"); default: document.write("Unknown grade<br />") } document.write("Exiting switch block"); //--> </script>
Ini akan menghasilkan keputusan berikut:
Entering switch block Good job Pretty good Passed Not so good Failed Unknown grade Exiting switch block