En combinant plusieurs structures if - else en une expression nous obtenons une structure qui est très courante pour prendre des décisions entre plusieurs alternatives:
if - else - ... - else
if ( <expr1> ) <bloc1> else if (<expr2>) <bloc2> else if (<expr3>) <bloc3> else if (<exprN>) <blocN> else <blocN+1>
Les expressions <expr1> ... <exprN> sont évaluées du haut vers le bas jusqu'à ce que l'une d'elles soit différente de zéro. Le bloc d'instructions y lié est alors exécuté et le traitement de la commande est terminé.
Exemple
#include <stdio.h> void main(void) { int A,B; cout<<"Entrez deux nombres entiers :"; cin>>A>>B; if (A > B) cout<<"A est plus grand que B"<<endl; else if (A < B) cout<<"A est plus petit que B"<<endl; else cout<<"A est égal à B"<<endl;
return 0; }
La dernière partie else traite le cas où aucune des conditions n'a été remplie. Elle est optionnelle, mais elle peut être utilisée très confortablement pour détecter des erreurs.
Exemple
... cout<<"Continuer (O)ui / (N)on ?"; cin>>C; if (C=='O') { ... } else if (C=='N') cout<<"Au revoir ..."<<endl; else cout<<"Erreur d'entrée !"<<endl; ...