Maison > Article > interface Web > Pourquoi les expressions dans les instructions Switch Case ne fonctionnent-elles pas comme prévu en 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!