30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.1 Selection Statements 75<br />

41 // For the r e s t of the types analogous statements<br />

42 // have to be i n s e r t e d here . I leave t h i s up to you . . .<br />

43<br />

44 return (−1);<br />

45 }<br />

Ich denke, das Programm braucht wirklich ke<strong>in</strong>e große Erklärung, deshalb<br />

möchte ich an dieser Stelle nur e<strong>in</strong>en kle<strong>in</strong>en Tipp anbr<strong>in</strong>gen, der die Lesbarkeit<br />

von Code betrifft: In den Zeilen 28–31 sieht man, dass das Programm<br />

e<strong>in</strong>e alles ok Meldung ausgibt und durch Aufruf von return <strong>in</strong> Zeile 30<br />

term<strong>in</strong>iert, <strong>in</strong>dem es die ma<strong>in</strong>-Funktion verlässt. Das bedeutet, dass das Programm<br />

<strong>in</strong> diesem Fall sicherlich niemals Zeile 32 erreichen kann. Aus diesem<br />

Grund ist hier auch ke<strong>in</strong> else notwendig, obwohl die Zeilen von 32 weg bis<br />

zum Ende des Programms quasi e<strong>in</strong>en logischen else-Zweig darstellen. Diese<br />

Vorgangsweise ist sehr anzuraten, denn ansonsten gibt es Fälle, <strong>in</strong> denen<br />

durch ungeschickte if...else-Konstrukte e<strong>in</strong>e unübersichtliche Schachtelungshierarchie<br />

von Blöcken entsteht, was die Wartbarkeit und Änderbarkeit<br />

von Code deutlich verr<strong>in</strong>gert.<br />

Es gibt auch e<strong>in</strong>en besonderen Operator, der unter dem Namen conditional<br />

Expression bekannt ist und der im Pr<strong>in</strong>zip e<strong>in</strong>er sehr kurzen und prägnanten<br />

Form von if...else entspricht. Die Rede ist von<br />

condition ? true-expr : false-expr<br />

Hierbei stellt condition e<strong>in</strong>e Bed<strong>in</strong>gung dar, die evaluiert wird. Für den Fall,<br />

dass sie zu true evaluiert, wird mit der Auswertung der true-expr fortgefahren,<br />

ansonsten mit der false-expr. Sehr oft f<strong>in</strong>det man e<strong>in</strong>e solche conditional<br />

expression bei bed<strong>in</strong>gten Zuweisungen. Das Statement<br />

<strong>in</strong>t number = orig > MAX ? MAX : orig;<br />

weist z.B. der Variablen number den Wert MAX zu, sofern orig größer ist als<br />

dieser, ansonsten wird orig zugewiesen. Für Neul<strong>in</strong>ge ist diese Schreibweise<br />

zwar eher ungewohnt, aber ich möchte im S<strong>in</strong>ne von klarem und e<strong>in</strong>fach lesbarem<br />

Code allen Lesern empfehlen, sich mit diesem Statement anzufreunden<br />

und es auch wirklich zu verwenden.<br />

Hat man viele Alternativen, aus denen man aussuchen will, so kann<br />

es schnell passieren, dass e<strong>in</strong>e Reihe von (vielleicht sogar geschachtelten)<br />

if...else Statements ziemlich unübersichtlich wird. Aus diesem Grund<br />

gibt es das switch Konstrukt, das sich formal folgendermaßen präsentiert:<br />

switch(condition)<br />

{<br />

case const1 :<br />

statement1<br />

case const2 :<br />

statement2<br />

...<br />

default:<br />

statement-xx<br />

}

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!