Bon les gars faut pas déconner.
En C et dans les languages de la même famille :
- || est l’opérateur de ’ou’ logique.
- && est l’opérateur de ’et’ logique
Les tables de vériter du ’et’ et ’ou’ logique sont sur Wikipédia
De plus ! Car oui c’est pas la seule chose.
&& et || ont un comportement court-circuit.
C’est à dire que dès que le résultat de l’opération peut être déterminé, le résultat est retourné.
Typiquement, l’expression : "0 && foo()" n’évaluera jamais ’foo’ car peut importe ce que retourne foo(), l’expression en générale est fausse.
De même pour ’ou’ : "1 || bar()" n’évaluera jamais bar.
Pour le cas du " foo() || bar()", si foo() ne fini jamais bar n’est pas executé.
Si foo() returne quelque chose qui est évalué a vrai alors bar n’est pas exécuté, l’expression totale vaux vrai.
Si foo() return 0 alors bar() est executé.
Si bar() se termine, l’expression vaut l’évaluation booléen de sa valeur.
Edit: Coupe-circuit
Et personne me fait la remarque ? x’D