zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Erinnert Euch sich daran, dass für maximale Genauigkeit die Schleifenkontrollvariable vom Typ Integer sein sollte. Also sollte die modifizierte Schleife wie diese aussehen:

double t = 0.0 ;
int zehntel = 0 ;
while (  zehntel <= zeit*10 )
{
  t = zehntel/10.0 ;        // vergewissert Euch,
                            // dass Ihr "Punkt 0" hinzufügt
  entfernung = (G * t * t) / 2 ;
  System.out.println( t + "\t" + entfernung );

  zehntel = zehntel + 1 ;
}

Es ist am besten die Formel so zu lassen wie sie im vorherigen Programm war und die Berechnung von t in zehntel in einer extra Anweisung zu handhaben. (Manche versuchen die extra Anweisung wegzulassen, indem sie die Formel modifizieren, aber das spart wenig oder keine Computerzeit und bringt möglicherweise Verwirrung und Fehler mit sich.)

Reihen von Sternen

Angenommen wir brauchen ein Programm, das fünf Reihen von Sternen ausgibt, so wie das folgende:

*******
*******
*******
*******
*******

Das wird mit einer while-Schleife getan, die fünfmal ausgeführt wird (die den Schleifenkörper fünfmal ausführt). Jede Iteration verwendet System.out.println("*******"). Aber es ist besser wenn der Anwender die Anzahl der Zeilen und die Anzahl der Sterne eingeben kann:

Zeilen?
3
Sterne pro Zeile?
13
*************
*************
*************

Das ist schwieriger, da der Anwender nach einer beliebigen Anzahl von Sternen pro Zeile fragen kann und ein einzelnes println das nicht tun kann.

FRAGE 16:

Kann eine Zählschleife, so wie wir sie verwendet haben, eingesetzt werden, um durch die Anzahl der Zeilen zu zählen, die vom Anwender verlangt werden.