Difference entre | et || en C++ - C++ - Programmation
Marsh Posté le 02-06-2006 à 14:33:07
|| est l'opérateur ou *logique*. En gros, <conditionA> || <conditionB> est vrai si condiionA est vraie ou si conditionB est vraie. 
 
| est l'opérateur ou *binaire*. Si a est un int de valeur 3 (sa représentation bnaire est 00000011) et b est un entier de valeur 5 (sa représentation binaire est 00000101), alors c = a | b vaut 7 (sa représentation binaire 00000111 est obtenue en faisant un "ou" bit-à-bit sur les représentations binaires de a et b) 
 
En pratique, il y a de fortes chances que tu n'utilises que || 
 
edit: GRILLAID !
Marsh Posté le 02-06-2006 à 15:16:28
precision importante, on pourrait tres bien ecrire 
<conditionA> | <conditionB> 
la difference ici c'est que conditionB est évaluée meme si conditionA est vrai (les 2 expressions-operandes sont evaluées avant d'effectuer l'operation)
Marsh Posté le 02-06-2006 à 15:18:21
ouais enfin si tes conditions renvoie pas 1 mais "un entier ayant une valeur non nulle" tu risque d'avoir des surprises avec le | utilisé dans un if. 
l'utilisation du | est vraiment très rare et dans des cas particuliers ou quand t'en a besoin tu sais vraiment pourquoi tu l'utilise 
Marsh Posté le 02-06-2006 à 15:26:45
ce que je veux faire c est : 
 
Si (a<11 || b<22)  
 
si a< 11 et/ou b<22 
 
C est donc correct ?
Marsh Posté le 02-06-2006 à 15:31:12
| sylvaing a écrit : ce que je veux faire c est :  | 
 
Oui oui, c'est ça. 
 
 
 
skelter> j'ai effectivement oublié de parler de l'évaluation paresseuse  
 
ceci dit, je ne suis pas sûr qu'il soit judicieux de parler de "if( condA | condB )" à quelqu'un qui est visiblement débutant...
Marsh Posté le 02-06-2006 à 15:32:14
| 0x90 a écrit : ouais enfin si tes conditions renvoie pas 1 mais "un entier ayant une valeur non nulle" tu risque d'avoir des surprises avec le | utilisé dans un if. | 
 
 
eu la non, pour tout entier n 
 
n | 0 == n 
 
au niveau de la logique booleenne c'est identique a ||
Marsh Posté le 02-06-2006 à 15:35:09
| franceso a écrit :   | 
 
 
oui, en effet, ne jamais utiliser | quand on pourrait utiliser || a la place 
Marsh Posté le 02-06-2006 à 16:20:27
| skelter a écrit : eu la non, pour tout entier n  | 
 
 
effectivement j'ai dit une petite bétise ![[:cupra] [:cupra]](https://forum-images.hardware.fr/images/perso/cupra.gif) c'est pour le & que ca pose des problèmes en fait...
 c'est pour le & que ca pose des problèmes en fait...
Marsh Posté le 02-06-2006 à 14:25:36
Bonjour a tous....
Je suis un peu inquiet...j ai fait un code C++ en utlisant "||" dans le sens et/ou...Est ce correct ? Quelle est la difference entre "|" et "||" ?
Merci a tous
Sylvain