zaehler ist 13 zaehler ist 14 zaehler ist 15 zaehler ist 16 zaehler ist 17 . . . . und so weiter ...
Es ist möglich (und kommt häufig vor), dass aus Versehen eine Zählschleife erstellt wird, die niemals endet.
In dem oben stehenden Beispiel passiert das, weil die Variable dekrement
den Wert -1 hatte.
So dass die Anweisung
zaehler = zaehler - dekrement;
tatsächlich eins zu zaehler
addierte.
Also wurde zaehler
größer und größer und erreichte niemals
0, nach der der Bedingungsteil suchte:
while ( zaehler >= 0 ) // GRÖSSER-als-oder-gleich-Operator
Solche Schleifen werden Endlos-Schleifen genannt oder nicht-terminierende Schleifen und sind manchmal beim Programmieren leicht zu übersehen. Hier ist ein weiteres Programmfragment:
int zaehler = 20; int dekrement = -1; while ( zaehler 10 ) // welcher relationaler Operator ? { System.out.println( "zaehler ist:" + zaehler ); zaehler = zaehler + dekrement ; } System.out.println( "zaehler war " + zaehler + " als er den Test nicht bestand");
Welcher relationaler Operator sollte verwendet werden, so dass das Programmfragment die Integer 20 abwärts und inklusive 11 ausgibt?