Maison > Article > interface Web > Pouvez-vous utiliser des expressions dans les instructions JavaScript Switch Case ?
En JavaScript, les instructions switch facilitent l'exécution conditionnelle basée sur l'égalité d'une valeur par rapport à des constantes prédéterminées. Cependant, que se passe-t-il si vous souhaitez plutôt exploiter des expressions dynamiques qui sont évaluées au moment de l'exécution ?
L'extrait de code fourni tente d'utiliser des expressions dans les cas de changement :
<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>
Malheureusement, cette approche ne fonctionne pas comme prévu. La raison réside dans la nature de l’instruction switch. Chaque expression de cas renvoie une valeur booléenne, indiquant si la condition est vraie ou fausse. Dans le code donné, les expressions sont évaluées à vrai ou faux, et non aux valeurs constantes souhaitées.
Pour résoudre ce problème, on peut utiliser une astuce où l'instruction switch est évaluée à une valeur booléenne constante (vrai dans ce cas). case) et utilise des expressions dans les instructions case pour contrôler le flux d'exécution :
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // Code break; case (amount >= 10000 && amount < 15000): // Code break; // etc. }</code>
Cette solution de contournement permet d'évaluer les expressions dans les cas switch, bien qu'elle présente certains inconvénients potentiels. Premièrement, cela nécessite une évaluation constante de la valeur vraie, ce qui peut être inutile ou indésirable dans certains scénarios. Deuxièmement, le code devient moins concis et potentiellement plus déroutant.
Une approche alternative consiste à utiliser des instructions if-else, qui fournissent un moyen plus simple d'évaluer les expressions dynamiques et d'exécuter les blocs de code correspondants. Le choix entre utiliser une instruction switch contournée ou des instructions if-else dépend des exigences spécifiques de l'application.
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!