Penilaian Ekspresi dalam Pernyataan Kes Suis
Apabila mencipta pernyataan suis dalam pengaturcaraan, anda mungkin menghadapi situasi di mana anda ingin menggunakan ungkapan dalam klausa kes bukannya nilai tetap. Walaupun jika penyataan mudah menampung ungkapan sedemikian, kebimbangan timbul tentang kecekapan potensi penyataan suis dalam senario sedemikian.
Pertimbangkan kod JavaScript berikut:
<code class="javascript">function reward(amount) { var $reward = $("#reward"); switch (amount) { case (amount >= 7500 && amount < 10000): $reward.text("Play Station 3"); break; case (amount >= 10000 && amount < 15000): $reward.text("XBOX 360"); break; case (amount >= 15000): $reward.text("iMac"); break; default: $reward.text("No reward"); break; } }</code>
Dalam contoh ini, kami cuba menilai ungkapan dalam klausa kes. Walau bagaimanapun, kami menghadapi masalah kerana ungkapan hanya menghasilkan nilai boolean, manakala nilai amaun yang kami bandingkan ialah nombor. Ketidakpadanan ini menghalang klausa kes daripada dicetuskan dengan betul.
Satu penyelesaian yang berdaya maju ialah menggunakan sintaks alternatif:
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // Code break; case (amount >= 10000 && amount < 15000): // Code break; // etc. }</code>
Dengan memperkenalkan pengecam sebenar, kami menukar penilaian ungkapan kepada perbandingan dengan berkesan dengan boolean true. Apabila ungkapan dalam klausa kes dinilai kepada benar, kod dalam klausa itu akan dilaksanakan.
Walaupun teknik ini kelihatan agak tidak konvensional, ia memintas pengehadan yang dihadapi apabila membandingkan secara langsung ungkapan dalam klausa kes. Hasilnya, anda boleh mencapai gelagat yang diingini sambil mengekalkan kelebihan kecekapan penyataan suis.
Atas ialah kandungan terperinci Bolehkah Anda Menggunakan Ungkapan dalam Pernyataan Kes Tukar dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!