ホームページ >ウェブフロントエンド >jsチュートリアル >Switch Case ステートメントの式が JavaScript で期待どおりに機能しないのはなぜですか?

Switch Case ステートメントの式が JavaScript で期待どおりに機能しないのはなぜですか?

DDD
DDDオリジナル
2024-10-30 07:35:27311ブラウズ

Why Do Expressions in Switch Case Statements Not Work as Expected in JavaScript?

Switch Case ステートメントの式の評価

JavaScript では、switch ステートメントは一連の定数式に対して 1 つの式を評価します。ただし、提供されたコード スニペットに示されているように、case 句内で式を使用しようとすると、予期しない動作が発生する可能性があります。

目標は、switch ステートメントを使用して、amount 変数の値に基づいて報酬を決定することです。 。 case 句に見られるように、式の評価が試行されます。

<code class="javascript">case (amount >= 7500 && amount < 10000):
// ...
case (amount >= 10000 && amount < 15000):
// ...

残念ながら、これらの式は、amount の数値と一致するのではなく、ブール値 (true または false) に評価されます。その結果、switch ステートメントはどの case にも入りません。

この問題に対処するには、考えられる解決策の 1 つは、次のように true の式を case 値として使用し、case 句内の式を評価することです。 :

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // ...
    break;
  case (amount >= 10000 && amount < 15000):
    // ...
    break;
}</code>

このアプローチは、case 値がブール値 true になり、case 句の式がブール値に評価されるため機能します。

以上がSwitch Case ステートメントの式が JavaScript で期待どおりに機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。