while() bricht bei -1 nicht ab !! Endlos

AlexD1979

Erfahrenes Mitglied
Hallo, Java kann manchmal so grausam sein. Ich habe eine while Schleife, die einen String durchsucht und die Position zurückliefert. Die Schleife soll solange durchlaufen werden, bis kein String mehr gefunden wird. Die Rückgabe ist dann -1 aber warum erkennt meine Schleife das nicht sondern läuft von da ab unendlich?

Code:
if (moreDates(str, sprache_index) > 2) {
                        System.out.print("Begin_index vorher \n"+begin_index_x+" ");
                        while (begin_index_x != -1) {
                            int such_laenge_x = 32;
                            begin_index_x = str.indexOf("Diese Zeitperiode ist gültig vom",begin_index_x);
                            System.out.print(begin_index_x+" / ");
                            int ende_x = such_laenge_x + begin_index_x;
                            String temp = str.substring(ende_x, ende_x + 12).trim();
                            resultx[22][i] = temp; //from date
                            temp = str.substring(ende_x + 21, ende_x + 32).trim();
                            resultx[24][i] = temp; //to date
                            begin_index_x = ende_x;
                                            
                        }
                    }

Die Ausgabe ist
Begin_index vorher
0 3222 / 4825 / -1 / 3222 / 4825 / -1 / 3222 / 4825 / -1 / 3222 / 4825 / -1 .... (unendlich)
 
dadurch, dass du am schluss immer wieder
Code:
begin_index_x = ende_x;
setzt, kann dein begin_index_x sooft -1 sein wie es will, nur wenn am Schluß es wieder überschrieben wird, is es halt nicht mehr -1 :)
 
Basti54 hat gesagt.:
dadurch, dass du am schluss immer wieder
Code:
begin_index_x = ende_x;
setzt, kann dein begin_index_x sooft -1 sein wie es will, nur wenn am Schluß es wieder überschrieben wird, is es halt nicht mehr -1 :)

Öhm ja... danke. Vor lauter Java habe ich das nicht bedacht. Vielen Dank
 
Zurück