Führt eine for-Schleife zuerst die Schleifenkörperanweisung aus und wertet dann den Ausdruck aus?

青灯夜游
Freigeben: 2020-07-23 14:53:45
Original
25484 Leute haben es durchsucht

Nein, die for-Schleife beurteilt zuerst den Ausdruck und führt dann die Schleifenkörperanweisung aus. Die allgemeine Form ist „für (Ausdruck 1; Ausdruck 2; Ausdruck 3) {Schleifenkörper}“; führen Sie zuerst „Ausdruck 1“ aus, dann führen Sie „Ausdruck 2“ aus, wenn sein Wert wahr ist (nicht 0), dann führen Sie den aus Schleifenkörper, andernfalls beenden Sie die Schleife; führen Sie „Ausdruck 3“ nach der Ausführung des Schleifenkörpers aus.

Führt eine for-Schleife zuerst die Schleifenkörperanweisung aus und wertet dann den Ausdruck aus?

Die allgemeine Form einer for-Schleife ist:

for(表达式1; 表达式2; 表达式3){
    语句块
}
Nach dem Login kopieren

Ihr laufender Prozess ist:

1) Führen Sie zuerst „Expression 1“ aus.

2) Führen Sie dann „Ausdruck 2“ aus. Wenn sein Wert wahr ist (nicht 0), führen Sie den Schleifenkörper aus, andernfalls beenden Sie die Schleife.

3) Führen Sie „Ausdruck 3“ aus, nachdem Sie den Schleifenkörper ausgeführt haben.

4) Wiederholen Sie die Schritte 2) und 3), bis der Wert von „Ausdruck 2“ falsch ist, und beenden Sie dann die Schleife.

In den obigen Schritten sind 2) und 3) eine Schleife und werden wiederholt ausgeführt. Die Hauptfunktion der for-Anweisung besteht darin, die Schritte 2) und 3) kontinuierlich auszuführen.

„Ausdruck 1“ wird nur während der ersten Schleife ausgeführt und wird in Zukunft nicht mehr ausgeführt. Dies kann als Initialisierungsanweisung betrachtet werden. „Ausdruck 2“ ist im Allgemeinen ein relationaler Ausdruck, der bestimmt, ob die nächste Schleife fortgesetzt werden soll, was als „Schleifenbedingung“ bezeichnet wird. „Ausdruck 3“ ist häufig ein Ausdruck mit einer Inkrementierungs- oder Dekrementierungsoperation, sodass die Schleifenbedingung nach und nach „nicht wahr“ wird.

Der Ausführungsprozess der for-Schleife kann durch die folgende Abbildung dargestellt werden:

Führt eine for-Schleife zuerst die Schleifenkörperanweisung aus und wertet dann den Ausdruck aus?

Lassen Sie uns „Berechnen“ analysieren Addition von 1 bis „Summe von 100“ Code:

#include <stdio.h>
int main(){
    int i, sum=0;
    for(i=1; i<=100; i++){
        sum+=i;
    }
    printf("%d\n",sum);
    return 0;
}
Nach dem Login kopieren

Betriebsergebnis:

5050
Nach dem Login kopieren

Codeanalyse:

1) Beim Ausführen der for-Anweisung zuerst zuweisen ein Anfangswert für i 1. Bestimmen Sie, ob i<=100 wahr ist, da i=1 und i<=100 zu diesem Zeitpunkt wahr sind, wird der Schleifenkörper ausgeführt. Nachdem die Ausführung des Schleifenkörpers beendet ist (der Wert von sum ist 1), wird i++ erneut berechnet.

2) Während der zweiten Schleife beträgt der Wert von i 2, i<=100 wird festgelegt und der Schleifenkörper wird weiterhin ausgeführt. Nachdem die Ausführung des Schleifenkörpers beendet ist (der Wert von sum ist 3), wird i++ erneut berechnet.

3) Wiederholen Sie Schritt 2) bis zur 101. Schleife. Zu diesem Zeitpunkt ist der Wert von i 101 und i<=100 ist nicht wahr, sodass die Schleife endet.

Daraus können wir die allgemeine Form der for-Schleife zusammenfassen:

for(初始化语句; 循环条件; 自增或自减){
    语句块
}
Nach dem Login kopieren

Die drei Ausdrücke in der for-Schleife

" in der for-Schleife „Ausdruck 1 (Initialisierungsbedingung)“, „Ausdruck 2 (Schleifenbedingung)“ und „Ausdruck 3 (Selbstinkrementierung oder Selbstdekrementierung)“ sind alle optional und können weggelassen werden (das Semikolon ; muss jedoch beibehalten werden).

1) Ändern Sie den Code für „Summe von 1 bis 100“ und lassen Sie „Ausdruck 1 (Initialisierungsbedingung)“ weg:

int i = 1, sum = 0;
for( ; i<=100; i++){
    sum+=i;
}
Nach dem Login kopieren

Wie Sie sehen können, verschieben Sie i=1 nach außerhalb von die Schleife.

2) „Ausdruck 2 (Schleifenbedingung)“ wird weggelassen. Wenn keine andere Verarbeitung durchgeführt wird, wird es zu einer Endlosschleife. Zum Beispiel:

for(i=1; ; i++) sum=sum+i;
Nach dem Login kopieren

entspricht:

i=1;
while(1){
    sum=sum+i;
    i++;
}
Nach dem Login kopieren

Die sogenannte Endlosschleife bedeutet, dass die Schleifenbedingung immer wahr ist und die Schleife fortgesetzt wird und niemals endet. Endlosschleifen sind sehr schädlich für das Programm und müssen vermieden werden.

3) Wenn „Ausdruck 3 (Selbstinkrementierung oder Selbstdekrementierung)“ weggelassen wird, werden die Variablen in „Ausdruck 2 (Schleifenbedingung)“ nicht geändert. In diesem Fall können geänderte Variablen hinzugefügt werden zur Schleifenkörperanweisung. Zum Beispiel:

for( i=1; i<=100; ){
    sum=sum+i;
    i++;
}
Nach dem Login kopieren

4) „Ausdruck 1 (Initialisierungsanweisung)“ und „Ausdruck 3 (Selbstinkrement oder Selbstdekrement)“ werden weggelassen. Zum Beispiel:

for( ; i<=100 ; ){
    sum=sum+i;
    i++;
}
Nach dem Login kopieren

entspricht:

while(i<=100){
    sum=sum+i;
    i++;
}
Nach dem Login kopieren

5) 3 Ausdrücke können gleichzeitig weggelassen werden. Zum Beispiel:

for( ; ; )  语句
Nach dem Login kopieren

entspricht:

while(1)  语句
Nach dem Login kopieren

6) „Ausdruck 1“ kann eine Initialisierungsanweisung oder andere Anweisungen sein. Zum Beispiel:

for( sum=0; i<=100; i++ )  sum=sum+i;
Nach dem Login kopieren

7) „Ausdruck 1“ und „Ausdruck 3“ können ein einfacher Ausdruck oder ein Komma-Ausdruck sein.

for( sum=0,i=1; i<=100; i++ )  sum=sum+i;
Nach dem Login kopieren

oder:

for( i=0,j=100; i<=100; i++,j-- )  k=i+j;
Nach dem Login kopieren

8) „Ausdruck 2“ ist im Allgemeinen ein relationaler Ausdruck oder ein logischer Ausdruck, kann aber auch ein numerischer Wert oder ein Zeichen sein, solange sein Wert kein Wert ist -Null, der Schleifenkörper wird ausgeführt. Zum Beispiel:

for( i=0; (c=getchar())!=&#39;\n&#39;; i+=c );
Nach dem Login kopieren

Ein weiteres Beispiel:

for( ; (c=getchar())!=&#39;\n&#39; ; )
    printf("%c",c);
Nach dem Login kopieren

Verwandte Empfehlungen: „C-Sprach-Tutorial

Das obige ist der detaillierte Inhalt vonFührt eine for-Schleife zuerst die Schleifenkörperanweisung aus und wertet dann den Ausdruck aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage