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 (;;);

Gesagt sagt hier noch, dass diese Beispielimplementationen natürlich eher unschön sind und daher in der Praxis so 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.

0

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