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
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
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 (;;);
Gesagt sagt hier noch, dass diese Beispielimplementationen natürlich eher unschön sind und daher in der Praxis so nicht eingesetzt werden sollten.
![](https://images.gutefrage.net/media/user/Wolverine80/1460320067131_nmmslarge__99_25_324_324_34f416538e5b6a558dab087c0578cd41.jpg?v=1460320067000)
Vielen Dank für die ausführliche Antwort! Jetzt hab ichs tatsächlich mal verstanden.
![](https://images.gutefrage.net/media/user/tavkomann/1546901653590_nmmslarge__0_0_512_512_d0d8c4156c0806032a429d80fed1cb83.png?v=1546901654000)
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.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Nimmste ein float machste i += 0.5