Ich habe noch nie ein Tutorial oder eine Vorlesung gesehen, die eine klassische For-Schleife ohne die Post-Inkrement-Reihenfolge zeigte.pre-increment vs. post-increment - for-loop Geschwindigkeit
for (int i=0; i<array.length; i++) {}
Wenn Sie POST-Schritt verwenden, wird die Variable "i" zwischengespeichert werden, bevor sie erhöht wird erhalten! Aber das macht keinen Sinn, weil der Befehl direkt endet.
Meiner Meinung nach, macht dies mehr Sinn:
for (int i=0; i<array.length; ++i) {}
Wenn Sie bis jetzt nicht verstanden, gehe ich ein bisschen weiter (sry für mein Englisch):
In der ersten Schleife :
- Cache den tatsächlichen Wert von i. (Anmerkung: keine Bewegung zwischen, also keinen Grund, dies zu tun)
- Erhöhungsschritte i
- Go ahead
In der zweiten Schleife:
- Erhöhungsschritte i direkt
- Go voraus.
So ist die zweite Schleife leistungsfähiger für keinen Qualitätsverlust. Irgendwelche anderen Meinungen?
Die einzige Möglichkeit zu wissen, ob die zweite Schleife leistungsfähiger ist, besteht darin, sie zu messen (vorausgesetzt, der erzeugte Assemblercode ist anders). Mit einem 'int' bezweifle ich, dass es einen Unterschied macht. Vielleicht mit einigen Iteratortypen. ** Bearbeiten ** Ich spreche C++ hier. – juanchopanza
Wenn Sie sagen "die Variable * wird zwischengespeichert *", verwenden Sie irgendein Verständnis oder Forschung der Situation, oder spekulieren Sie nur? –
Ich sah ein C++ - Tag, aber dann verschwand es und ich sehe nur Java, also postete ich das dup für Java. –