Schleifen: for-Schleife (4/9)

Daher ist es auch nicht zulässig, die Schleifenvariablen für verschiedene Schleifen im gleichne Gütigkeitsbereich neu zu deklarieren:

  for (int k = 0; ...)    // Erste for-Schleife
      // Anweisung

  for (int k = 0; ...)    // FEHLER, da k bereits deklariert!!!
      // 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:

  // Beispiel einer verschachtelten for-Schleife

  for (int k = 0; k < 6; k++)          // äußere Schleife
      for (int i = 0; i < 8; i++)      // innerer Schleife
          cout << k << " mal " << i << " ergibt " << k*i << endl;