zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Wie sollte die Zuweisungsanweisung vervollständigt werden, damit die Schleife endet?

Antwort:

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");

Um Zehntel hochzählen

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.

double zahl ;
int    zehntel  = 0;
int    inkrement     =  ; // wählt einen Inkrementwert

while ( zehntel  <=  )   // setzt den Grenzwert
{
  zahl =  ; // den aktuellen Wert berechnen
  System.out.println( "Zahl:" + zahl );
  zehntel =  zehntel + inkrement ;
}
System.out.println( "Fertig");

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.

FRAGE 11:

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.