En programmation, il est souvent nécessaire de comparer des valeurs en utilisant supérieur à (>) ou inférieur à (≪) opérateurs. Alors que les instructions if peuvent gérer ces comparaisons, une approche plus efficace et plus élégante consiste à utiliser une instruction switch.
Cependant, l'utilisation d'une instruction switch pour les requêtes supérieures/inférieures à pose des défis car les cas de commutation nécessitent des correspondances exactes. . L'expression de plages ou d'intervalles sous forme de cas uniques n'est pas directement prise en charge.
Pour surmonter cette limitation et tirer parti de l'efficacité des instructions switch, envisagez les options suivantes :
switch (scrollLeft) { case (scrollLeft < 1000): // do stuff break; case (scrollLeft < 2000): // do stuff break; }
Cette méthode implique de créer des cas individuels pour chaque valeur limite, mais elle ne permet pas plusieurs niveaux de comparaisons.
const conditions = [ { from: 0, to: 1000 }, { from: 1000, to: 2000 }, ]; for (let i = 0; i < conditions.length; i++) { const condition = conditions[i]; if (scrollLeft < condition.from) break; if (scrollLeft < condition.to) { // do stuff for condition [i] break; } }
Cette approche utilise un tableau pour stocker les conditions, avec chaque objet représentant une plage. La boucle parcourt les conditions et effectue la comparaison nécessaire.
Dans certains environnements, il est possible d'utiliser une instruction switch personnalisée qui prend en charge les comparaisons basées sur la plage. Par exemple, dans Node.js :
switch (scrollLeft) { case ((scrollLeft < 1000) ? { from: 0, to: 1000 } : null): // do stuff break; case ((scrollLeft < 2000) ? { from: 1000, to: 2000 } : null): // do stuff break; }
La solution optimale dépend de facteurs tels que le nombre de comparaisons et les contraintes environnementales spécifiques. Référencez les résultats de référence fournis pour guider votre sélection.
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!