logo

Opérateur conditionnel en C

L'opérateur conditionnel est également appelé opérateur ternaire . Les instructions conditionnelles sont les instructions de prise de décision qui dépendent du résultat de l'expression. Il est représenté par deux symboles, c'est-à-dire « ? » et ':'.

Comme l’opérateur conditionnel fonctionne sur trois opérandes, il est également appelé opérateur ternaire.

Le comportement de l'opérateur conditionnel est similaire à celui de ' sinon ', comme la déclaration 'if-else', est également une déclaration de prise de décision.

Syntaxe d'un opérateur conditionnel

 Expression1? expression2: expression3; 

La représentation visuelle de la syntaxe ci-dessus est présentée ci-dessous :

Opérateur conditionnel en C

Signification de la syntaxe ci-dessus.

  • Dans la syntaxe ci-dessus, l'expression1 est une condition booléenne qui peut être vraie ou fausse.
  • Si l'expression1 donne une valeur vraie, alors l'expression2 s'exécutera.
  • L'expression2 est dite vraie uniquement lorsqu'elle renvoie une valeur non nulle.
  • Si l'expression1 renvoie une valeur fausse, l'expression3 s'exécutera.
  • L’expression3 est dite fausse uniquement lorsqu’elle renvoie une valeur nulle.

Comprenons l'opérateur ternaire ou conditionnel à travers un exemple.

 #include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; } 

Dans le code ci-dessus, nous prenons comme entrée « l'âge » de l'utilisateur. Après avoir pris les entrées, nous avons appliqué la condition en utilisant un opérateur conditionnel. Dans cette condition, nous vérifions l'âge de l'utilisateur. Si l'âge de l'utilisateur est supérieur ou égal à 18 ans, alors l'instruction 1 s'exécutera, c'est-à-dire (printf('éligible au vote')) sinon, l'instruction 2 s'exécutera, c'est-à-dire (printf('non éligible au vote') ).

Observons le résultat du programme ci-dessus.

Si nous fournissons l'âge de l'utilisateur inférieur à 18 ans, le résultat serait :

Opérateur conditionnel en C

Si nous fournissons l'âge de l'utilisateur supérieur à 18 ans, le résultat serait :

Opérateur conditionnel en C

Comme nous pouvons le constater à partir des deux sorties ci-dessus, si la condition est vraie, alors l'instruction 1 est exécutée ; sinon, l'instruction2 sera exécutée.

Jusqu'à présent, nous avons observé comment l'opérateur conditionnel vérifie la condition et, en fonction de la condition, il exécute les instructions. Nous allons maintenant voir comment un opérateur conditionnel est utilisé pour attribuer la valeur à une variable.

strep c

Comprenons ce scénario à travers un exemple.

 #include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; } 

Dans le code ci-dessus, nous avons déclaré deux variables, c'est-à-dire « a » et « b », et attribuons 5 valeurs à la variable « a ». Après la déclaration, nous attribuons une valeur à la variable « b » en utilisant l'opérateur conditionnel. Si la valeur de « a » est égale à 5 alors « b » se voit attribuer la valeur 3, sinon 2.

Sortir

Opérateur conditionnel en C

Le résultat ci-dessus montre que la valeur de la variable « b » est 3 car la valeur de la variable « a » est égale à 5.

Comme nous le savons, le comportement de l'opérateur conditionnel et de « if-else » est similaire mais ils présentent quelques différences. Regardons leurs différences.

  • Un opérateur conditionnel est une instruction de programmation unique, tandis que l'instruction « if-else » est un bloc de programmation dans lequel les instructions sont placées entre parenthèses.
  • Un opérateur conditionnel peut également être utilisé pour attribuer une valeur à la variable, alors que l'instruction « if-else » ne peut pas être utilisée à des fins d'affectation.
  • Elle n'est pas utile pour exécuter les instructions lorsque les instructions sont multiples, alors que l'instruction « if-else » s'avère plus appropriée lors de l'exécution de plusieurs instructions.
  • L'opérateur ternaire imbriqué est plus complexe et ne peut pas être facilement débogué, tandis que l'instruction imbriquée « if-else » est facile à lire et à maintenir.