Wie sollte die Zuweisungsanweisung vervollständigt werden, damit die Schleife endet?
int zaehler = 10; int inkrement = -1; while ( zaehler < 100 ) // prüft den relationalen Operator { System.out.println( "zaehler ist:" + zaehler ); zaehler = zaehler - inkrement; } System.out.println( "zaehler war " + zaehler + " als er den Test nicht bestand");
Das oben stehende Programmfragment ist logisch korrekt, aber schlecht geschrieben, da es schwieriger zu verstehen (und daher fehleranfälliger) ist als die folgende Version, die genau das gleiche tut:
int zaehler = 10; int inkrement = 1; while ( zaehler < 100 ) // prüfen Sie den relationalen Operator { System.out.println( "zaehler ist:" + zaehler ); zaehler = zaehler + inkrement; } System.out.println( "zaehler war " + zaehler + " als er den Test nicht bestand");
Aber, wir könnten keine Kontrolle über die Werte
für zaehler
und inkrement
haben.
Die Werte könnten als Input-Daten kommen.
Wir könnten eine Schleife schreiben müssen, die damit korrekt umgeht.
Hier ist ein Programmfragment, das um Zehntel hochzählt,
d. h. 0.0, 0.1, 0.2, 0.3 und so weiter bis 10.0.
Diese Werte sollten in die Variable zahl
gestellt werden.
Dieses Programm ist ein Beispiel einer alltäglichen Situation: der aktuelle Wert, der uns interessiert ist nicht die Schleifenkontrollvariable, sondern ein Wert, der auf der Basis der Schleifenkontrollvariablen berechnet wird.
Wir füllen die Lücken aus, so dass der Variablen zahl
die von uns gewünschten Werte zugewiesen werden:
0.0, 0.1, 0.2, ... 1.0, 1.1, ... 9.8, 9.9, 10.0.