Cas de commutation basés sur des expressions en JavaScript
En JavaScript, les instructions de commutation de cas fournissent un moyen pratique de gérer plusieurs cas en fonction d'un cas spécifique. valeur. Cependant, les instructions switch-case traditionnelles nécessitent la comparaison de valeurs de chaîne ou de nombres entiers. Dans certains scénarios, il peut être souhaitable d'utiliser des expressions qui sont évaluées lors de la comparaison.
Problème rencontré
Un de ces scénarios est décrit par un utilisateur qui a rencontré un défi en essayant d'utiliser une expression dans une instruction switch-case :
<code class="javascript">switch (amount) { case (amount >= 7500 && amount < 10000): // Code break; // Other cases default: // Default code }
Cependant, ce code a entraîné un comportement inattendu, ce qui soulève la question de savoir s'il est possible d'utiliser des expressions dans des instructions switch-case.
Résoudre le problème
Le problème vient du fait que la variable montant est un nombre, tandis que les expressions dans les clauses case sont évaluées comme des booléens (c'est-à-dire vrai ou faux ). Par conséquent, les valeurs ne correspondent jamais, ce qui fait que le code contenu dans les clauses case ne s'exécute jamais.
Pour résoudre ce problème, une approche consiste à enfermer l'expression dans une instruction true :
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // Code break; // Other cases default: // Default code }</code>
Cela fonctionne car la valeur comparée est désormais la valeur booléenne vraie. Par conséquent, le code sous la première clause case avec une expression qui est évaluée à true sera exécuté.
Considérations
Bien que cette technique permette l'utilisation d'expressions dans switch- les déclarations de cas, elles doivent être utilisées avec prudence. Les déclarations if-else peuvent être plus concises et plus faciles à lire pour certains scénarios. En fin de compte, le choix entre les instructions switch-case et if-else dépend des exigences spécifiques du code.
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!