JavaScript の Switch Case ステートメントで式を使用できますか?

Linda Hamilton
リリース: 2024-10-31 20:27:02
オリジナル
114 人が閲覧しました

Can You Use Expressions in Switch Case Statements in JavaScript?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!