3.1.6 Welche Ausgabe erzeugt das folgende Programm? Ist sie korrekt? Wenn nicht, korrigieren Sie das Programm !

public class IfApp
{
   public static void main(String[] args)
   {
      int a=5,b=7,c=4;
      System.out.println("a=" + a +" b=" + b + " c=" + c);
     if (a<b)
      if (a<c)
         System.out.println("a ist die kleinste Zahl");
         else
            System.out.println("a ist nicht kleiner als b");
   }
}

In dieser Form behauptet das Programm, a wäre nicht kleiner als b. Das ist aber offensichtlich falsch. Der Grund dafür ist, dass der else-Zweig nicht als zum äußeren if gehörend interpretiert wird, sondern zum inneren. Dass die Einrückung der Anweisungsblöcke etwas anderes impliziert stört den Compiler herzlich wenig. Lösen Sie das Problem, indem Sie die Blöcke mithilfe von geschweiften Klammern korrekt (und für den Compiler verständlich) strukturieren.