Frage zu der for() Schleife



  • Mir ist die funktionsweise einer for() Schleife völlig bekannt, jedoch habe ich bei einem Beispiel eine Frage.

    Gibt es einen Grundlegenden Unterschied zwischen denen zwei Schleifen,

    for(int i=0; i<10; ++i) {
    	 cout << i << endl;
    	}
    
    for(int i=0; i<10; i++) {
    	 cout << i << endl;
    	}
    

    Der einzige Unterscheid zwischen den zwei Schleifen ist dieser, das die Iteration bzw. die Varaible vom integer typ (i) anders inkrementiert wird (Prä. Post).

    Macht es bei einer for() Schleife jedoch einen Unterscheid aus?
    Gibt es Fälle bei so einer Schleiffe, bei denen man darauf achten sollte?
    Den bei der hier macht es kar keinen unterscheid.



  • Bei diesen Schleifen machen die Post- und Pre-Increments keinen Unterschied, jedenfalls nicht was die Funktionalität angeht. Es kann sein, dass je nach dem was für ein Compiler eingesetzt wird, es einen leichten Performanceunterschied geben kann, da bei einem Post-Increment ein temporärer Wert angelegt wird.

    Tipp: Probiere doch einfach mal das hier.

    for (int i = 0; i < 10;)
    {
      std::cout << i++ << std::endl;
    }
    
    for (int i = 0; i < 10;)
    {
      std::cout << ++i << std::endl;
    }
    

    Es kommt nur bei einer direkten Zuweisung zu einem unterschiedlichen Verhalten. Solltest du den temporäreren Wert nicht benötigen, benutze immer ein Pre-Increment (++i).



  • "Solltest du den temporäreren Wert nicht benötigen, benutze immer ein Pre-Increment (++i)."

    Jezt ist es verständlicher 🙂 Danke.


Anmelden zum Antworten