for (int k = 0; ...) // FEHLER, da k bereits deklariert!!!
for (int k = 0; ...) // Erste for-Schleife
// Anweisung
// Anweisung
Und damit hat man wieder einen Punkt gefunden, wo sich die Meinungen über C++ teilen:
Während die einen gerade diese Möglichkeit der gleichzeitigen Deklaration
und Definition von Variablen in Initialisierungsausdrücken toll finden, da man
unmittelbar
erkennt, daß die entsprechende Variable zur Schleife gehört, sehen
die anderen eher die damit verbundenen Probleme: Man weiß nicht mehr unbedingt,
welche Variablen man wann, wo und zu welchem Zweck deklariert hat.
Der besseren Übersicht halber sollten Variablendeklarationen stets zu Beginn eines
Anweisungsblockes erfolgen und nicht erst mittendrin; erst recht nicht versteckt in einem
Initialisierungsausdruck einer for-Schleife!
Da man die bequeme Deklarationsmöglichkeit im Initialisierungskopf aber
wahrscheinlich dennoch nutzen wird, sollte man zumindest durch einen
nichtübersehbaren Kommentar
verdeutlichen, welche Variablen auf diese Weise deklariert worden sind.
Selbstverständlich ist es auch eine Schachtelung von mehreren for-Schleifen zulässig:
for (int k = 0; k < 6; k++)
// äußere Schleife
// Beispiel einer verschachtelten for-Schleife
for (int i = 0; i < 8; i++)
// innerer Schleife
cout << k <<
" mal " << i << " ergibt " << k*i << endl;