Erste Schritte while do Schleife

dan1996

Aktives Mitglied
Hallo ich habe folgende Frage
Warum wird die Schleife nicht schon beim ersten Durchlauf beendet, da beim ersten Durchlauf a = 3 und b = 2 ist und somit die Bedingung while (a > b) erfüllt wird ?


int a = 3;
int b = 1;

do {
a = a + b;
if (b == 4)
continue;
else
b++;
if ((a * b) % 3 == 1) break;
a--;
}
while (a > b);
 
die Schleife wird mit den Werten a = 7 und b = 4 beendet, was ich mich frage ist, warum aber, da es eigentlich erst bei der Negation der Bedingung verlassen werden soll.
 
Hast Du denn den Code mal ausprobiert ??

Hier mal Dein Code mit ein paar Hilfsausgaben:
Java:
do
{
    System.out.println( "BEGINN: a<" + a + "> b<" + b + ">");
    a = a + b;

    if( b == 4 )
    {
         continue;
    }
    b++;

    if( (a*b) % 3 == 1 )
    {
         break;
    }

    a--;              
    System.out.println( "ENDE: a<" + a + "> b<" + b + ">");
} while (a > b);
System.out.println( "danach: a<" + a + "> b<" + b + ">");

und das Ergebnis:
Java:
BEGINN: a<3> b<1>
ENDE: a<3> b<2>
BEGINN: a<3> b<2>
ENDE: a<4> b<3>
BEGINN: a<4> b<3>
danach: a<7> b<4>

Fällt Dir was auf ??? 😉
VG Klaus
 

Neue Themen


Zurück
Oben