y > 1)" soulève des questions sur sa validité et son évaluation en..."/> y > 1)" soulève des questions sur sa validité et son évaluation en...">

Maison >développement back-end >C++ >La comparaison chaînée de C '(4 > y > 1)' est-elle toujours évaluée comme fausse ?

La comparaison chaînée de C '(4 > y > 1)' est-elle toujours évaluée comme fausse ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-19 01:11:09513parcourir

Does C  's Chained Comparison y > 1)" Toujours évaluer à faux ? " /> y > 1)" Toujours évaluer à faux ? " />

Évaluation de la validité des opérateurs logiques chaînés en C

L'instruction "(4 > y > 1)" soulève des questions sur sa validité et son évaluation en C . Examinons ces aspects et découvrons comment l'instruction se comporte en C .

Expression Évaluation

L'instruction donnée peut être décomposée en ses opérateurs logiques :

(4 > y) > 1

C évalue les opérateurs logiques chaînés de gauche à droite. Par conséquent, l'évaluation se déroule comme suit :

  1. Comparez 4 et y : Si y est inférieur à 4, le résultat est 1 (vrai) ; sinon, c'est 0 (faux).
  2. Comparez le résultat de l'étape 1 et 1 : Puisque le résultat de la première comparaison (1 ou 0) ne peut jamais être supérieur à 1, le résultat de cette comparaison sera toujours faux (0).

Implication :

L'expression "(4 > y > 1)" est valide mais est toujours évaluée comme fausse en raison de la flux logique expliqué ci-dessus.

Exception :

Une exception à ce comportement est si y est un objet d'une classe personnalisée et que l'opérateur ">" a été surchargé pour présenter un comportement différent. Dans un tel scénario, le résultat de la comparaison peut s'écarter des règles de comparaison numérique typiques.

Instruction alternative :

Pour fournir une sémantique logique plus claire, il est recommandé de réécrire l'expression comme :

(4 > y && y > 1)

Cette formulation évite l'ambiguïté de l'énoncé original et évalue correctement les conditions dans l'énoncé souhaité ordre logique.

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