Veröffentlicht 20. Juni 200619 j Wer von Euch kann mir den Unterschied zwischen: for(int i=0;i<10;++i) und: for(int i=0;i<10;i++) erklären??? Vielen Dank!!!
20. Juni 200619 j einmal rechnet man i for dem begin der schleife hoch, einmal danach sprich in den Berechnungen Fall 1: i == 1 einmal Fall 2: i == 0
20. Juni 200619 j Nein das ist falsch. Für diese Schleife macht es keinen Unterschied. Wenn du in beiden Schleifen i ausgeben würdest bekämst du bei beiden die selbe Ausgabe. Der Unterschied zeigt sich an anderer Stellen. Zum einen wäre bei folgendem Beispiel: int i=5,u; u=i++; [/PHP] u = 5 und i = 6. Er wird also der Wert von vor der Erhöhung zurückgegeben. Wenn es aber jetzt [PHP] int i=5,u; u=++i; heißen würde hätten beide Variablen den Wert 6. Es wird also erst erhöht und dann der Wert zurückgegeben. In deinem Beispiel oben ist es also egal wie rum du das schreibst. Interessant wäre es nur wenn i kein Integer sondern eine komplexe Klasse wäre, denn da müsste bei der i++ Variante intern zuerst eine temporäre Kopie von i angelegt werden. ++i wäre also perfomanter.
22. Juni 200619 j Eine Sache noch Es wird bei i++ mehr Speicheplatz benötigt, als bei ++i. Dies läßt sich gut mit der Implementation des operators darstellen : className operator ++() // ++i { // increace current object return *this; } className operator ++(int) // i++ { className newObj(*this); // increase current object return newObj; } [/PHP]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.