Habt Ihr die Bedingung richtig gesetzt?
Das Programm so weit:
import java.util.Scanner;
// Anwender wählt den Endwert für die Zeit, t
// Das Programm berechnet und gibt die Entfernung aus,
// die der Ziegelstein in der Zeit t zurückgelegt hat
//
class FallenderZiegelstein
{
public static void main (String[] args )
{
final double G = 9.80665; // Konstante für Gravitationsbeschleunigung
int t, zeit; // Zeit in Sekunden und Endwert der Zeit
double entfernung; // die Entfernung, die der Ziegelstein zurückgelegt hat
Scanner scan = new Scanner( System.in );
System.out.println( "Zeit in Sekunden:" );
zeit = scan.nextInt();
// Überschrift ausgeben
System.out.println( "Sekunden\tEntfernung" );
System.out.println( "-------\t--------" );
t = 0 ;
while ( t <= zeit )
{
; // Entfernung berechnen
; // Ergebnis ausgeben
t = t + 1 ;
}
}
}
Der Schleifenkörper wird für t = 0, 1, 2, ..., zeit ausgeführt.
Am Ende der letzten Ausführung wird t in (zeit+1) geändert.
Aber der Bedingungsausdruck wird die Ausführung des
Schleifenkörpers nicht erlauben, wenn t (zeit+1) ist.
Lasst uns jetzt die Entfernung für jeden Wert von t berechnen:
entfernung = (1/2)*G*t2
Wir übersetzen die Formel in eine Java Anweisung, um die erste Lücke auszufüllen. Aufgepasst: es gibt zwei Fallstricke!
Wir füllen die zwei Lücken aus. Für die Ausgabeanweisung verwenden wir ein Tabulator-Zeichen.