7.7. Guter Programmierstil
- Fassen Sie Anweisungen zur Schleifensteuerung an einer Stelle — am besten in der Schleifenanweisung — zusammen. Dabei gilt es, einen Mittelweg zu finden zwischen der Gruppierung zusammengehöriger Anweisungen und der Vermeidung überladener Schleifenanweisungen. Initialisierungsauswüchse mit Hilfe des Kommaoperators und aufgeblähte, schwer verständliche Schleifenbedingungen sollten jedenfalls vermieden werden.
- Verwenden Sie als Schleifenzähler nur Variablen eines ganzzahligen Datentyps und verzichten Sie für diesen Zweck auf Fließkommazahlen! Diese können Näherungswerte darstellen und deshalb zu unerwünschten Folgen bei der Überprüfung der Schleifenbedingung führen.
- Auf die Zählervariable kann mit Anweisungen des Schleifenkörpers zugegriffen werden. Unterlassen Sie es bei dieser Gelegenheit, den Variablenwert zu ändern. Das Programm wird dadurch schwer verständlich und unerwünschte Nebeneffekte werden damit geradezu provoziert.
- Vermeiden Sie bei verschachtelten Schleifen eine Verschachtelungstiefe von mehr als drei Ebenen. Auch dieser Grundsatz trägt dazu bei, Programme übersichtlich und verständlich zu halten.
- Verwenden Sie in der Bedingung zu zählergesteuerten Schleifen den Grenzwert zusammen mit dem Operator <= oder >=. Wenn beispielsweise eine for-Schleife 10 Durchläufe absolvieren soll, dann ziehen Sie for(iCount=1; iCount<=10; iCount++) der Konstruktion for(iCount=1; iCount < 11; iCount++) vor. Dies entspricht der Konvention und hilft, Fehler durch Überschreitung des Grenzwerts leichter aufzufinden.
- Unvollständige Schleifen, also Schleifen mit fehlenden Ausdrücken oder ohne Schleifenkörper sollten in jedem Fall mit entsprechenden Kommentaren versehen werden. Bei Schleifen ohne Körper sollte das abschließende Semikolon in einer eigenen Zeile stehen, am besten nach einem aufschlußreichen Kommentar. Fehlende Ausdrücke in der for-Anweisung sollten durch Hinweise ersetzt werden, die erläutern, warum auf einen bestimmten Ausdruck verzichtet wurde, z.B. for(/* iMaxVal durch Benutzeingabe initialisiert*/; iOption<=iMaxVal; iMaxVal--).
- Vermeiden Sie den Einsatz von goto. Es gibt kein Programmierproblem, das sich nicht ohne diesen Befehl lösen ließe!