C Warum Zeilenumbruch?

Schnuffix10

Cadet 2nd Year
Registriert
Okt. 2013
Beiträge
24
Hey :)
kann mir jemand erklären warum er durch die if abfrage einen zeilenumbruch macht?
wäre super :)

Vielen Dank



Code:
int i;

    for(i=0; i<=255; i++)
    {
        printf(" %c ", i);
        if(i  %3 == 0)
            printf("\n");

    }
 
Der Inhalt der If-Abfrage (Also das printf("\n")) wird jedes mal ausgeführt, wenn die Laufvariable der For-Schleife (i) durch 3 teilbar ist. Modulo (%) gibt den Rest einer Division an, ist das Ergebnis = 0 (== steht in C für einen Vergleich), handelt es sich um einen ganzzahligen Teiler.
 
Danke für Eure Hilfe erstmal. ;)

Ich versteh leider irgendwie nicht ganz was diese boolesche Abfrage der 0 bewirkt.
Mit dem Zeilenumbruch mm wenn durch 3 Teilbar hab ich verstanden, aber was ist mit der 0 bzw wenn da jetzt eine 2 stehen würde?

hmmm:freak:
 
Dann würde immer dann ein Zeilenumbruch erzeugt werden, wenn der Rest der Division 2 wäre.
Bei i == 8 zum Beispiel. 8%3 = 2, da 2x3 = 6 und 8-6 = 2
 
Schreib es dir doch auf
Für %3 == 0
i = 10 -> mit %3 ergibt Restwert von 1 (da 9 durch 3 Teilbar ist, Rest zu 10 ist 1)
i = 11 -> mit %3 ergibt Restwert von 2 (da 9 durch 3 Teilbar ist, Rest zu 11 ist 2)
i = 12 -> mit %3 ergibt Restwert von 0 (da 12 durch 3 Teilbar ist, ohne Rest)

Wenn du also %3 == 2 definieren würdest, kommt der Zeilenumbruch immer dann, wenn der Restwert 2 ergibt.

ok?
 
Eine if-Abfrage prüft, ob eine Bedingung wahr ist und falls dem so ist, führt sie eine Anweisung aus. Falls die Bedingung nicht wahr ist, wird die Anweisung nicht ausgeführt.
 
Zurück
Oben