Abbruchbedingung einer For-Schleife

friednoodles

Aktives Mitglied
Hi,

beim debuggen steht das folgende Schleife sofort terminiert wird.
Als Grund steht da "exit value 0>". Ich habe Probleme das genau zu verstehen, kann mir das jemand erklären?

Java:
    private static void forLoop() {
        for(int i=0; i==10; i++) {
            System.out.println(i);
        }
    }
 
Nach dem ersten Schleifendurchlauf ist i eben nicht 10, sondern 1. Die Schleife läuft solange weiter, wie die Bedingung true/wahr ist. Außerdem wird die Bedingung ja auch vor dem ersten Durchlauf geprüft, und da ist i auch nicht 10, sondern 0.
 
Was passiert im ersten Schleifendurchgang was die Schleife zum Abbruch bringt?
Es wird kein "Schleifendurchgang" (keine Iteration) stattfinden.

Java:
for(int i=0; i==10; i++) {
    System.out.println(i);
}

ist äquivalent zu

Java:
int i = 0;
while (i == 10) {
    System.out.println(i);
    i++;
}
Die Bedingung i == 10 ist offensichtlich schon zu Beginn nicht erfüllt.
 
Danke für deine Antwort, aber ich suche nach einer Erklärung warum i==10 nicht funktionieren kann.
Was passiert im ersten Schleifendurchgang was die Schleife zum Abbruch bringt?
Ein Blick in die Java Doku:
When using this version of the for statement, keep in mind that:
  • The initialization expression initializes the loop; it's executed once, as the loop begins.
  • When the termination expression evaluates to false, the loop terminates.
  • The increment expression is invoked after each iteration through the loop; it is perfectly acceptable for this expression to increment or decrement a value.
 

Zurück
Oben