La forme la  plus simple a  une condition et  une branche.  La condition
doit figurer entre des parenthèses, et son type doit contenir une valeur
nulle.  La branche,   placée  entre {   et } est  exécutée
lorsque la valeur de la condition est non nulle.
if (discriminant(a,b,c) < 0) {
  printf("l'équation n'a pas de solution réelle");
}
Dans la forme à deux branches, la première est exécutée quand la valeur de la condition est non-nulle ; la seconde est exécutée quand cette valeur est nulle.
  if (delta < 0) {
    printf("l'équation n'a pas de solution réelle\n");
  } 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) {
    printf("l'équation n'a pas de solution réelle\n");
  } else if (delta == 0) {
    x1 = -b/2*a;
    printf("l'équation a une solution x1 = %f\n", x1);
} else {
    double r = sqrt(delta);
    x1 = (-b - r)/(2*a);
    x2 = (-b + r)/(2*a);
    printf("l'équation a deux solutions ");
    printf("x1 = %4.2f et x2 = %4.2\n", x1, x2);
}