Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
11.3. DEFINITION BOOLESCHER FUNKTIONEN 123<br />
}<br />
{<br />
}<br />
rechts_um();<br />
return false;<br />
void rechts_um()<br />
{<br />
links_um(); links_um(); links_um();<br />
}<br />
Die folgende Funktionsde nition ist dahingegen fehlerhaft, denn bei der Ausfuhrung des else-<br />
Teils der if-Anweisung endet die Funktion, ohne da eine boolesche return-Anweisung ausgefuhrt<br />
worden ist:<br />
boolean nichts_geht_mehr()<br />
{<br />
if (vorn_frei)<br />
{<br />
vor();<br />
return false;<br />
}<br />
else<br />
{<br />
links_um();<br />
}<br />
}<br />
Im allgemeinen entdeckt der Compiler derartige Fehler und gibt Fehlermeldungen bzw. Warnungen<br />
aus. Wir werden jedoch in Kapitel 13 Falle kennenlernen, wo der Compiler derartige Fehler<br />
nicht erkennen kann. Daraus resultieren dann spezielle Laufzeitfehler.<br />
Was der Compiler auch nicht " mag\, sind Anweisungen innerhalb von Funktionsrumpfen, die<br />
gar nicht erreicht werden konnen, weil die Funktion auf jeden Fall vorher verlassen wird. Schauen<br />
Sie sich folgendes Beispiel an:<br />
boolean hinten_frei()<br />
{<br />
links_um();<br />
links_um();<br />
if (vorn_frei())<br />
{<br />
return true;<br />
}<br />
else<br />
{<br />
return false;