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);
 

dan1996

Aktives Mitglied
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.
 

VfL_Freak

Top Contributor
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


Oben