Heim  >  Artikel  >  Backend-Entwicklung  >  Führt eine for-Schleife zuerst die Schleifenkörperanweisung aus und wertet dann den Ausdruck aus?

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

青灯夜游
青灯夜游Original
2020-07-23 14:53:4525388Durchsuche

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){
    语句块
}

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

Betriebsergebnis:

5050

Codeanalyse:

1) Beim Ausführen der for-Anweisung zuerst zuweisen ein Anfangswert für i 1. Bestimmen Sie, ob i

2) Während der zweiten Schleife beträgt der Wert von i 2, i

3) Wiederholen Sie Schritt 2) bis zur 101. Schleife. Zu diesem Zeitpunkt ist der Wert von i 101 und i

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

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

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

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;

entspricht:

i=1;
while(1){
    sum=sum+i;
    i++;
}

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++;
}

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

for( ; i<=100 ; ){
    sum=sum+i;
    i++;
}

entspricht:

while(i<=100){
    sum=sum+i;
    i++;
}

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

for( ; ; )  语句

entspricht:

while(1)  语句

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

for( sum=0; i<=100; i++ )  sum=sum+i;

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;

oder:

for( i=0,j=100; i<=100; i++,j-- )  k=i+j;

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

Ein weiteres Beispiel:

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

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!

Stellungnahme:
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