Upload
reto-zewe
View
109
Download
0
Embed Size (px)
Citation preview
FOR Anweisung
Aufgabe:
Ausgabe aller ganzen Zahlen von 0 bis 100
auf dem Bildschirm
int main(){ int i; i=0; // wie geht es // weiter ??
for (i=0; i<=100; i=i+1){ printf("%d\n",i);}
Bedingung
Bedingung wahrBedingung falsch
printf("Das wars schon"); return 0;}
InitialisierungSchleifenzähler verändern
Programmverlauf
printf("Das wars schon"); return 0;}
for (i=0; i<=100; i=i+1){ printf("%d\n",i);}
Dynamische Entwicklung
des Inhalts der Variablen
i
printf("Das wars schon");
i 0 1
for (i=0; i<=100; i=i+1){ printf("%d\n",i);}
printf("Das wars schon");
i 0 1
for (i=0; i<=100; i=i+1){ printf("%d\n",i);}
2
.... usw. bis i den Wert 100
hat
printf("Das wars schon");
i 0 1
for (i=0; i<=100; i=i+1){ printf("%d\n",i);}
2 ... 100 101
printf("Das wars schon");
i 0 1
for (i=0; i<=100; i=i+1){ printf("%d\n",i);}
2 ... 100 101
C-Syntax fürFOR - Anweisung
for (Ausdr1; Ausdr2; Ausdr3){ Anweisung(en);}
Bedingung
Initialisierung
Den Schleifenzähler verändern
bei einer Anweisung sind Klammern nicht nötig.
Trotzdem:Immer Klammern machen.
Blockende
kein Semikolon
Warum nur eine Ausgabe ?
{for (i=0; i<=100; i=i+1); printf("%d\n",i);
}
Weil der Compiler dieses Konstrukt als die zwei folgenden Anweisungen auffasst:
Nach for (...) muss eine Anweisung kommen !Diese Anweisung ist die "leere Anweisung" (die nichts macht bzw. bewirkt), die durch den leeren Ausdruck, der mit einem Semikolon
abgeschlossen wird, zu einer Anweisung wird.Diese wird solange ausgeführt, solange i<=100 , also 101 mal.DANACH wird einmal printf("%d\n",i) ausgeführt.
for (i=0; i<=100; i=i+1);
{ printf("%d\n",i); }
Das heißt
wird vom Compiler wie folgt interpretiert:
for (i=0; i<=100; i=i+1);
for (i=0; i<=100; i=i+1) ;
Was wird also ausgegeben ?
101
Aufgabe:Flußdiagramm der
FOR - Anweisung mit beliebigem A1, A2, A3 und beliebigen Anweisung(en)
A, also der folgenden Anweisung …
for (A1; A2; A3){ A;}
Initialisierung (A1)
Bedingung (A2)
falsch
wahr
A
Schleifenzähler verändern (A3)
Struktogramm:
Anweisung(en)
for(Ausdr1; Ausdr2; Ausdr3)
Wie oft wird eine for-Schleife durchlaufen. Nennen Sie die obere bzw. untere Grenze.
0 ... Durchgänge, wobei die Initialisierung (Ausdr1) aber auf jeden Fall genau 1 Mal gemacht wird.
Die for-Schleife nennt man auch Zählschleife, weil durch den Anfangswert und den Endwert der Schleifenvariablen die Anzahl der Schleifendurchgänge festgelegt sind.