Maison  >  Article  >  interface Web  >  Pourquoi les expressions dans les instructions Switch Case ne fonctionnent-elles pas comme prévu en JavaScript ?

Pourquoi les expressions dans les instructions Switch Case ne fonctionnent-elles pas comme prévu en JavaScript ?

DDD
DDDoriginal
2024-10-30 07:35:27188parcourir

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

Évaluation d'expression dans les instructions de cas Switch

En JavaScript, l'instruction switch évalue une expression unique par rapport à une série d'expressions constantes. Cependant, tenter d'utiliser des expressions dans les clauses case peut entraîner un comportement inattendu, comme le démontre l'extrait de code fourni.

L'objectif est d'utiliser une instruction switch pour déterminer une récompense en fonction de la valeur de la variable montant. . L'évaluation des expressions est tentée, comme le montrent les clauses case :

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

Malheureusement, ces expressions sont évaluées en booléens (vrai ou faux) plutôt que de correspondre aux valeurs numériques du montant. Par conséquent, l'instruction switch n'entrera jamais dans aucun des cas.

Pour résoudre ce problème, une solution possible consiste à utiliser l'expression true comme valeur de cas et à évaluer l'expression à l'intérieur de la clause case, comme ceci :

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

Cette approche fonctionne car la valeur case est maintenant la valeur booléenne vraie et l'expression dans la clause case est évaluée à une valeur booléenne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn