Eine gute Antwort wäre:

In diesem Fall werden die geschweiften Klammern nicht wirklich benötigt, aber es ist vermutlich eine gute Idee, aus Gründen der Übersichtlichkeit:

if ( a == b )
{
    if ( d == e )
        gesamt = 0;

    else
        gesamt = gesamt + b;
}

Vollständiges AddUpNumbers-Programm

Hier ist das vollständige Programm, das die vom Anwender eingegebenen Integer addiert. Es enthält jetzt geschachtelte if-Anweisungen, die für die Eingabeforderung die passenden Endungen für die Zahlen auswählen:

import java.io.*;

// Alle Integer addieren, die der Anwender eingibt.
// Nach dem letzten Integer der addiert wird, gibt der Anwender eine 0 ein.
//
class AddUpNumbers
{
  public static void main (String[] args ) throws IOException
  {
    BufferedReader userIn = new BufferedReader (new InputStreamReader(System.in));
    String inputData;
    String suffix;
    int value;             // Daten, die der Anwender eingibt
    int count = 0;         // Wie viele Integer bis jetzt addiert wurden
    int sum   = 0;         // Initialisieren von sum

    // den ersten Wert holen
    System.out.println( "Enter first integer (enter 0 to quit):" );
    inputData  = userIn.readLine();
    value      = Integer.parseInt( inputData );

    while ( value != 0 )
    {
      // addiere value zu sum
      sum   = sum + value;     // gegenwärtigen Wert zur Summe addieren
      count = count + 1;       // ein Integer mehr wurde addiert

      // Eingabeaufforderung für den nächsten Wert
      if ( count+1  == 2  )
        suffix = "nd";
      else
        if ( count+1 == 3  )
          suffix = "rd";
        else
          suffix = "th";
      System.out.println( "Enter the " + (count+1) + suffix +
                          " integer (enter 0 to quit):" );

      // den nächsten Wert vom Anwender holen
      inputData  = userIn.readLine();
      value      = Integer.parseInt( inputData );

    }

    System.out.println( "Sum of the integers: " + sum );
  }
}

Das Programm ist ein bisschen kompliziert geworden. Die Logik, die zur Eingabeaufforderung für den nächsten Integer gehört, ist komplizierter als die Logik, die die Hauptarbeit macht, die Addition aller Integer. Es wäre schön die Logik für die Eingabeaufforderung in eine extra Methode wie "promptUser()" zu stellen. Das wird ein Thema eines zukünftigen Kapitels sein.

FRAGE 13:

(Denkfrage:) Das Hauptthema dieses Kapitels ist überwachungsgesteuerte Schleifen. Muss ein Kontrollwert ein Integer sein?

Inhaltsverzeichnis