zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

  1. Die Anfangswerte müssen richtig festgelegt sein.
  2. Die Bedingung in der while-Schleife muss richtig sein.
  3. Die Änderung der Variable(n) muss richtig vorgenommen werden.

Um zwei hochzählen

Wenn wir einen dieser drei Teile ändern, wird die Schleife etwas anderes tun. Hier ist ein Abschnitt eines Java Programms, das um zwei hochzählt:

zaehler ist: 0
zaehler ist: 2
zaehler ist: 4
zaehler ist: 6
Fertig mit dem Hochzählen um 2.

int zaehler = 0;            // zaehler wird initialisiert
while ( zaehler <= 6 )      // zaehler wird getested 
{
  System.out.println( "zaehler ist: " + zaehler );
  zaehler = zaehler + 2;      // zaehler wird um 2 erhöht
}
System.out.println( "Fertig mit dem Hochzählen um 2." );

Hier kommt was Schritt für Schritt passiert:


  1. zaehler wird mit 0 initialisiert.
  2. Die Bedingung zaehler <= 6 wird mit TRUE ausgewertet.
  3. Der Schleifenkörper wird ausgeführt:
    • Gibt aus: "zaehler ist: 0".
    • zaehler wird um 2 hochgezählt.
    • zaehler ist jetzt 2.
  4. Die Bedingung zaehler <= 6 wird mit TRUE ausgewertet.
  5. Der Schleifenkörper wird ausgeführt:
    • Gibt aus: "zaehler ist: 2".
    • zaehler wird um 2 hochgezählt.
    • zaehler ist jetzt 4.
  6. Die Bedingung zaehler <= 6 wird mit TRUE ausgewertet.
  1. Der Schleifenkörper wird ausgeführt:
    • Gibt aus: "zaehler ist: 4".
    • zaehler wird um 2 hochgezählt.
    • zaehler ist jeztt 6.
  2. Die Bedingung zaehler <= 6 wird mit TRUE ausgewertet.
  3. Der Schleifenkörper wird ausgeführt:
    • Gibt aus: "zaehler ist: 6"
    • zaehler wird um 2 hochgezählt.
    • zaehler ist jetzt 8.
  4. Die Bedingung zaehler <= 6 wird mit FALSE ausgewertet..
  5. Der Schleifenkörper wird übersprungen und die Anweisung nach der Schleife wird ausgeführt.
    • Sie gibt aus: "Fertig mit dem Hochzählen um 2."

FRAGE 2:

Nehmen wir eine Änderung am Programmfragment vor. Wir werden die Initialisierung von zaehler ändern in:

int zaehler = 1;

Was gibt das Programm aus? (Das ist ein leicht knifflige Frage. Bitte nehmt Euch für die Antwort Zeit.)