Wie Programm terminieren?

Neltra

Mitglied
Hallo ich bin neu hier und hätte auch eine Frage :).
Hat vielleicht jemand eine Idee wieso dieses Programm hier nicht terminiert, wenn ich z.B. 0 25 4 schreibe? Bei 0 50 5 würde es z.B. terminieren.
int start = Integer.parseInt(args[0]);
int end = Integer.parseInt(args[1]);
int step = Integer.parseInt(args[2]);

int i = start;
while (i != end) {
System.out.println(i);
i = i + step;
Ich hoffe mir kann hier jemand weiter helfen^^.
Mfg
 

Neltra

Mitglied
Setz doch mal die Zahlen ein, wo es nicht funktioniert und verfolge den Programmablauf.
Nach der Eingabe von 0 25 4 im Terminal werden Zahlen aufgezählt die 25 (welches das Ende sein sollte) überschreitet und bis ins unendliche weiter läuft. Bei 0 50 5 fängt es bei 0 an und endet bei 50 und dort klappt es. Leider weiß ich nicht woran das liegt.
 

looparda

Top Contributor
Mal bei dem Beispiel geblieben von eben:
0 25 4:
i nimmt folgende Werte an:
0, 4, 8, 12, 16, 20, 24, 28 ...
Entspricht einer von denen end (25)? Was bedeutet das für die Schleife?
 

Neltra

Mitglied
Mal bei dem Beispiel geblieben von eben:
0 25 4:
i nimmt folgende Werte an:
0, 4, 8, 12, 16, 20, 24, 28 ...
Entspricht einer von denen end (25)? Was bedeutet das für die Schleife?
End sollte in diesem Beispiel 24 sein und nicht weiter als 25 gehen. Ich sitze an diesem Problem seit mehreren Stunden und leider keine Lösungsansätze gefunden :/.
 

Lamajockey

Mitglied
Moin,
schau dir mal die while schleife an
Du fragst nach ungleich. Um beim Beispiel (0,25,4 ) zu bleiben
bis 24 ist alles gut i ist ungleich 25. Im nächsten Schritt ist i aber 28.
So jetzt ist 28 auch ungleich 25 was passiert. Genau, weiter geht's.
Ergo, die Bedingung ist falsch.
 

Neue Themen


Oben