Penilaian Ungkapan dalam Pernyataan Kes Suis
Dalam JavaScript, pernyataan suis menilai satu ungkapan terhadap satu siri ungkapan malar. Walau bagaimanapun, percubaan untuk menggunakan ungkapan dalam klausa kes boleh mengakibatkan kelakuan yang tidak dijangka, seperti yang ditunjukkan dalam coretan kod yang disediakan.
Matlamatnya adalah untuk menggunakan penyata suis untuk menentukan ganjaran berdasarkan nilai pembolehubah amaun . Penilaian ungkapan dicuba, seperti yang dilihat dalam klausa kes:
<code class="javascript">case (amount >= 7500 && amount < 10000): // ... case (amount >= 10000 && amount < 15000): // ...
Malangnya, ungkapan ini menilai kepada boolean (benar atau palsu) dan bukannya sepadan dengan nilai berangka amaun. Akibatnya, pernyataan suis tidak akan sekali-kali memasuki mana-mana kes.
Untuk menangani isu ini, satu penyelesaian yang mungkin adalah menggunakan ungkapan sebenar sebagai nilai kes dan menilai ungkapan di dalam klausa kes, seperti ini :
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // ... break; case (amount >= 10000 && amount < 15000): // ... break; }</code>
Pendekatan ini berfungsi kerana nilai kes kini ialah boolean true dan ungkapan dalam klausa kes menilai kepada nilai boolean.
Atas ialah kandungan terperinci Mengapa Ungkapan dalam Pernyataan Kes Suis Tidak Berfungsi seperti yang Dijangkakan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!