7 Stimmen

Wird der Ausdruck "count limit" einer for-Schleife nur einmal oder bei jeder Iteration ausgewertet?

Wenn ich eine Methode innerhalb der bedingten Anweisung einer Schleife aufrufe, wird sie dann bei jeder Schleifeniteration aufgerufen?

Zum Beispiel:

for( int i = 0; i <= expensiveComputation(); i++ ) {
    // Do something.
}

Werde ich auftreten expensiveComputation() bei jeder Iteration? Oder wird das Ergebnis von expensiveComputation() gespeichert und bei jeder Iteration gleichzeitig mit der Initialisierung der Schleifenvariablen verwendet werden?

Sollte ich sie stattdessen so umschreiben?

int max = expensiveComputation();
for ( int i = 0; i <= max; i++ ) {
    // Do something.
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X