For-Anweisung - Java - Bestimmtes Intervall?
Es soll eine Wertetabelle für die Höhe eines senkrecht geworfenen Balls zu einer bestimmten Zeit erstellt werden. Dazu wäre das Intervall 0,5s für t aber am sinnvollsten... wie kann ich das in der For-Anweisung festlegen? Schreibt man int t++, dann wird t ja immer ganzahlig um 1 erhöht.
3 Antworten
Pfuh... von den bisher 5 gegebenen Antworten sind nur 2 richtig... 😕
Du solltest wissen, dass in einer Iterationsschleife die Iterationsanweisung viel freier definiert werden kann. Du bist nicht daran gebunden, die Iterationsvariable stets um genau 1 zu erhöhen. Daher kannst du auch schreiben:
for (float t = 0; t < duration; t += 0.5f) { /* ... */ }
Wobei duration einfach mal die maximale Dauer beschreibt, die abgebildet werden soll und der double-Datentyp natürlich stattdessen ebenso einsetzbar wäre.
Noch als Nachtrag möchte ich mit ein paar Beispielen verdeutlichen, dass Iterationsschleifen in ihren Kopfargumenten mehr Implementationsraum bieten, als nur die typische Inkrementierung einer Variablen:
// print out with each iteration
for (int i = 0; i < 2; System.out.println(++i));
// multiple local variables
for (int i = 0, j = 1; i < 5; i += j) System.out.println("x" + i);
// infinity loop
for (;true;);
// with bool
for (boolean b = true; b; b = false) System.out.println(b);
// infinity loop
for (;;);
Dazu sei allerdings noch gesagt, dass diese Beispielimplementationen aufgrund ihrer schlechteren Lesbarkeit eher unschön sind und daher in der Praxis so besser nicht eingesetzt werden sollten.
Vielen Dank für die ausführliche Antwort! Jetzt hab ichs tatsächlich mal verstanden.
Schreibt man int t++, dann wird t ja immer ganzahlig um 1 erhöht.
Dann verwende keinen int, sondern ein double und erhöhe um einen kleineren Wert.
Nimmste ein float machste i += 0.5