Maison >interface Web >js tutoriel >Pouvez-vous utiliser des expressions dans les instructions JavaScript Switch Case ?

Pouvez-vous utiliser des expressions dans les instructions JavaScript Switch Case ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 21:46:301049parcourir

Can You Use Expressions in JavaScript Switch Case Statements?

Évaluation des expressions dans les instructions 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!

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