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; }
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.util.Scanner; // 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 ) { Scanner scan = new Scanner( System.in ); 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):" ); value = scan.nextInt(); 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 value = scan.nextInt(); } 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.
(Denkfrage:) Das Hauptthema dieses Kapitels ist überwachungsgesteuerte Schleifen. Muss ein Kontrollwert ein Integer sein?