For-Anweisung - Java - Bestimmtes Intervall?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.


Wolverine80 
Beitragsersteller
 25.10.2017, 12:10

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