# Wie Programm terminieren?



## Neltra (11. Nov 2017)

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


----------



## looparda (11. Nov 2017)

Setz doch mal die Zahlen ein, wo es nicht funktioniert und verfolge den Programmablauf.


----------



## Neltra (11. Nov 2017)

looparda hat gesagt.:


> 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 (11. Nov 2017)

Welche Werte nimmt _i_ denn konkret an durch i = i + step;? Entpricht einer von ihnen _end_?


----------



## Neltra (11. Nov 2017)

looparda hat gesagt.:


> Welche Werte nimmt _i_ denn konkret an durch i = i + step;? Entpricht einer von ihnen _end_?


Bei java Range 0 20 5 kommt raus: 
0
5
10
15
Also end wird nie erreicht, soll es auch nicht nur kommt es bei manchen Zahlen vor, dass es bis ins unendliche läuft.


----------



## looparda (11. Nov 2017)

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 (11. Nov 2017)

looparda hat gesagt.:


> 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 (13. Nov 2017)

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.


----------

