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;
...