Sa forme la plus simple a une condition et une branche. La condition
doit figurer entre des parenthèses, et son type doit être bool
ou convertible en un bool. La branche, placée entre {
et } est exécutée lorsque la valeur de la condition est
true.
if (discriminant(a,b,c) < 0) {
cout << "l'équation n'a pas de solution réelle" << endl;
}
Dans la forme à deux branches, la première est exécutée quand la valeur de la condition est true ; la seconde est exécutée quand cette valeur est false.
if (delta < 0) {
cout << "l'équation n'a pas de solution réelle" << endl;
} else {
double r = sqrt(delta);
}
Enfin, la branche else peut elle-même contenir un if (et ainsi de suite), ce qui conduit à l'imbrication suivante :
if (delta < 0) {
cout << "l'équation n'a pas de solution réelle" << endl;
} else if (delta == 0) {
x1 = -b/2*a;
cout << "l'équation a une solution x1 = " << x1 << endl;
} else {
double r = sqrt(delta);
x1 = (-b - r)/(2*a);
x2 = (-b + r)/(2*a);
cout << "l'équation a deux solutions "
<< "x1 = " << x1
<< ", x2 = " << x2 << endl;
}