ホームページ > 記事 > ウェブフロントエンド > JavaScript の Switch Case ステートメントで式を使用できますか?
switch case ステートメントの式の評価
プログラミングで switch ステートメントを作成するとき、case 節内の式を利用したい状況に遭遇することがあります。固定値の代わりに。 if ステートメントはそのような式に容易に対応しますが、そのようなシナリオでは switch ステートメントの潜在的な効率性について懸念が生じます。
次の JavaScript コードを考えてみましょう:
<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>
この例では、次の評価を試みます。 case 節内の式。ただし、比較する金額の値は数値であるのに対し、式はブール値のみを生成するため、問題に直面します。この不一致により、case 句が正しくトリガーされなくなります。
実行可能な解決策の 1 つは、代替構文を採用することです。
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // Code break; case (amount >= 10000 && amount < 15000): // Code break; // etc. }</code>
真の識別子を導入することで、式の評価を比較に効果的に変換します。ブール値 true を使用します。 case 句内の式が true と評価されると、その句内のコードが実行されます。
この手法は少し型破りに見えますが、case 句内の式を直接比較するときに発生する制限を回避します。その結果、switch ステートメントの効率上の利点を維持しながら、目的の動作を実現できます。
以上がJavaScript の Switch Case ステートメントで式を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。