Dans une instruction if, l'utilisation de plusieurs conditions OR peut être une technique utile pour évaluer plusieurs conditions simultanément. Cependant, la syntaxe pour exprimer ces conditions peut prêter à confusion.
Dans l'extrait de code ci-dessous, l'intention est d'évaluer si le nombre saisi par l'utilisateur est égal à 1, 2 ou 3 :
if (number==1||2||3) { cout << "Your number was 1, 2, or 3." << endl; }
Cependant, ce code ne fonctionne pas comme prévu. Le problème réside dans la syntaxe : la façon dont les conditions sont écrites, le compilateur l'interprète comme :
if ( (number == 1) || 2 || 3 ) {
Dans cette interprétation, l'opérateur logique OU (||) est évalué comme vrai si l'un ou l'autre du côté gauche est vrai ou le côté droit est vrai. Puisque 2 et 3 sont des valeurs vraies, la condition entière est évaluée comme vraie quelle que soit la valeur du nombre.
Pour exprimer correctement plusieurs conditions OU, chaque condition doit être explicitement évaluée par rapport à la variable :
if (number==1 || number==2 || number==3) { cout << "Your number was 1, 2, or 3." << endl; }
Avec cette syntaxe, la condition sera évaluée correctement, renvoyant vrai uniquement si le nombre est égal à 1, 2 ou 3.
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!