Sven: Frage zur Logik [C]

Hallo,

schaut euch mal bitte folgenden einfachen Code an:
---------------------------------------------------
#include <stdio.h>
 int main(void)
 {
  int a,b;
  a=0;
  b=0;
  while(a<=25)
   {
   a++;
   printf("%i",a);
   while(b<=25)
   {
             b++;
      printf("TEST");
          }

}

}
-----------------------------------------------------
So, meine Ausgabe ist folgendermaßen:
1TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
TEST
234567891011121314151617181920212223242526

Aber das ist doch falsch oder nicht?
Die äußere Schleife zählt auf 1 und Springt in die Innere Schleife die wiederum bis 25 zählt und somit 25 mal "TEST" ausgibt, danach _sollte_ doch wieder die äußere anspringen, bis 2 zählen und dann sollte wieder die Innere anspringen, 25 mal Test ausgeben und so weiter.....
Also musste die ausgabe doch 25*25 "TEST" ausgegeben werde oder nicht? In diesem fall wurde die Innere Schleife doch nur einmal ausgeführt, die äußere hat sich aber 25 mal ausgeführt, das sieht man ja an den Zahlen das gezählt wurde.
Was ist falsch oder verstehe ich das einfach falsch?
Theoretisch müsste 25 mal "TEST" kommen dann eine hochgezählte Zahl, dann wieder 25 mal "TEST", wieder eine hochgezählte Zahl usw.....
Versteht einer was ich meine ;)

Danke für Hilfe!

  1. Hallo,

    dein Fehler ist, dass du vergisst b nach jedem Schleifendurchlauf auf 0 zurückzusetzen. b wird einmal bis 25 gezählt und danach wird die innere while-Schleife nicht mehr ausgeführt, weil die Bedingung a <= 25 False ist.

    Gruss,
    OhneName

    1. Hallo OhneName,

      danke! Mißt, soweit habe ich garnicht gedacht! ;)
      Ich hatte einfach mal aus Spaß mit den While Schleifen rumgespielt und diese ergebnis bekommen, das hat mich stutzig gemacht, aber der fehler lag an meiner "unlogik".
      Danke nochmals!

      1. echo $begrüßung;

        der fehler lag an meiner "unlogik".

        Solche Fehler in der eigenne Logik findet man übrigens meist recht schnell, wenn man sich die Werte der beteiligten Variablen ausgeben lässt.

        echo "$verabschiedung $name";

        1. Hallo,

          ja ich weiß, ich war noch in der "for" denkweise, die würde ja 25 ausgeführt werden.