Question de logique

Le
The Best Poster
Bonjour,

Soit le code : if (A && B) où A et B sont des valeurs booléennes.

Selon certains de mes collègues, l'opérateur && en CSharp evalue
systématiquement les deux conditions A et B.

Or il me semble qu'en C++, le principe est que si la condition A est
fausse, l'évaluation ne va pas plus loin, ce qui permettrait d'écrire :

if ((pointeur !=NULL) && (pointeur->x !=0))

sans provoquer de plantage si pointeur est NULL (car dans ce cas, on
n'évalue pas la seconde condition (pointeur->x !=0)

Pouvez vous me dire si en CSharp les deux conditions A et B sont
systématiquement évaluées ou pas, quand A est faux ?

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
J
Le #21231701
Le 19/02/2010 16:44, The Best Poster a écrit :

Soit le code : if (A && B) où A et B sont des valeurs booléennes.


...
Pouvez vous me dire si en CSharp les deux conditions A et B sont
systématiquement évaluées ou pas, quand A est faux ?



Non, si A est false, alors B n'est pas évalué.
http://msdn.microsoft.com/fr-fr/library/2a723cdk%28VS.80%29.aspx

Jean
Christophe Lephay
Le #21232651
"J" : 4b7ec4da$0$29837$
Le 19/02/2010 16:44, The Best Poster a écrit :

Soit le code : if (A && B) où A et B sont des valeurs booléennes.


...
Pouvez vous me dire si en CSharp les deux conditions A et B sont
systématiquement évaluées ou pas, quand A est faux ?



Non, si A est false, alors B n'est pas évalué.
http://msdn.microsoft.com/fr-fr/library/2a723cdk%28VS.80%29.aspx



Il existe l'opérateur & qui, en revanche, évalue les deux expressions.
Publicité
Poster une réponse
Anonyme