Das Abbruchkriterium in einer for-Schleife kann auf unterschiedliche Weise dynamisch angepasst werden.
Eine Möglichkeit ist die Verwendung einer boolean-Variable als Abbruchkriterium. Im folgenden Beispiel ist der boolean doIt initial true. Beim Eintreten eines bestimmten Ereignisses (i == 5) wird er in der Schleife auf false gesetzt und bewirkt einen Abbruch der Schleife.
boolean doIt = true; for (int i = 0; doIt; i++) { if (i == 5) { doIt = false; } System.out.println(i); } // Ausgabe: 0 1 2 3 4 5
Eine weitere Möglichkeit die Schleife bei einem bestimmten Ereignis zu beenden, ist die Verwendung der break-Anweisung. Die break-Anweisung bewirkt, dass die Schleife sofort verlassen wird. Im folgenden Beispiel wird die Schleife beendet, wenn in einem Text zwei Mal das gleiche Zeichen in Folge auftritt.
char ca[] = "Hello".toCharArray(); char lastChar = 0; for (int i = 0; i < ca.length; i++) { char aktChar = ca[i]; if (lastChar == aktChar) { System.out.println("Zwei gleiche Zeichen in Folge: " + aktChar); break; } lastChar = aktChar; } // Ausgabe: Zwei gleiche Zeichen in Folge: l
Im letzten Beispiel wird ein Histogramm gezeichnet. Das Abbruchkriterium der inneren Schleife wird durch die Daten in einem Array bestimmt.
int a[] = { 2, 3, 7, 14, 8, 4, 3 }; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i]; j++) { System.out.print('*'); } System.out.println(); } // Ausgabe: // ** // *** // ******* // ************** // ******** // **** // ***