2017-03-10 1 views
-5

Zum Beispiel, was passiert, wenn ich sage:Was passiert in C, wenn die Bedingung für eine for-Schleife zu Beginn nicht erfüllt ist?

for(i = 2; i < 2; i++) 

Offensichtlich ist dies eine nutzlose for-Schleife ist, aber vielleicht ein i = und ein durch etwas anderes festgelegt. Was passiert in diesem Fall?

+1

Konnten Sie in etwa zwei Minuten keinen Code schreiben, der dies für Sie beantworten würde? –

+0

https://ideone.com/guKsdG – PSkocik

+0

@KenWhite Mein Compiler ist gerade in Aktion, sonst hätte ich es getestet. – RothX

Antwort

2

Keine Iteration der Schleife wird ausgeführt.

In der Tat dieser Schleife (mit der Maßgabe, dass die Bedingung keine Nebenwirkungen hat)

for(i = 2; i < 2; i++) { /* ... */ } 

ist äquivalent zu dieser Aussage

i = 2; 
1

die Bedingung eines for-Schleife wird vor jeder Iteration überprüft, einschließlich der erste; Der Körper der Schleife wird also nie ausgeführt.

0

Die Art und Weise for-Schleife Arbeiten ist es für Zustand überprüft (in Ihrem Fall i < 2) und führt alles, was zwischen { } oder was auch immer Code auf folgende Zeilen

Wie Sie i-2 die Bedingung nicht sofort initialisiert wird und nichts wird ausgeführt.

Im Prinzip wird Code, der innerhalb von für Schleife nie ausgeführt wird.

0

In einer for Schleife wird die Bedingung vor der ersten Iteration ausgewertet. Dies bedeutet, dass in Ihrem Beispiel der Inhalt der Schleife nicht ausgeführt würde, da i bereits größer oder gleich 2 ist.

Beispiel Codepfad:

  1. Set i = 2.
  2. Überprüfen Sie, ob i < 2.
  3. Schleife beenden, da Schritt 2 als falsch ausgewertet wurde.

i würde immer noch modifiziert, jedoch werden, da die variable Initialisierung (d.h. i = 2) auftritt, bevor der Zustand überprüft wird.

Verwandte Themen