Java Reference
In-Depth Information
Der Compiler entdeckt derartige Fehler und gibt entsprechende Fehlermeldungen aus.
Was der Compiler auch nicht „mag“, sind Anweisungen innerhalb von Funktionsrümpfen, die gar
nicht erreicht werden können, weil die Funktion auf jeden Fall vorher verlassen wird. Schauen Sie
sich folgendes Beispiel an:
boolean hintenFrei() {
linksUm();
linksUm();
if (vornFrei()) {
return true;
} else {
return false;
}
linksUm();
linksUm();
}
Die Funktion hintenFrei wird in jedem Fall in der if-Anweisung verlassen, da bei ihrer Aus-
führung sowohl in der true-Blockanweisung als auch in der false-Blockanweisung eine boolesche
return-Anweisung erreicht wird. Die beiden anschließenden linksUm(); -Befehle können also un-
möglich erreicht werden. Auch hier liefert der Compiler eine Fehlermeldung.
Die if-Anweisung im vorangehenden Beispiel ist zwar syntaktisch korrekt aber umständlich for-
muliert. Häufig sieht man einen derartigen Programmstil bei Programmieranfängern. Es gilt: Sei bA
Platzhalter für einen beliebigen booleschen Ausdruck. Dann sind folgende Anweisungen semantisch
äquivalent:
// Variante 1
// Variante 2
if (bA) {
return bA;
return true;
} else {
return false;
}
Die zweite Variante ist wegen ihrer Kompaktheit verständlicher und der ersten Variante vorzuziehen.
11.4 Aufruf boolescher Funktionen
Durch die Definition einer booleschen Funktion wird ein neuer Testbefehl eingeführt. Der Aufruf
einer booleschen Funktion wird auch Funktionsaufruf genannt.
11.4.1 Syntax
Eine boolesche Funktion darf überall dort aufgerufen werden, wo auch einer der drei vordefinierten
Testbefehle aufgerufen werden darf. Der Aufruf einer booleschen Funktion gilt also als ein spezi-
eller boolescher Ausdruck. Der Funktionsaufruf erfolgt syntaktisch durch die Angabe des Funkti-
onsnamens gefolgt von einem runden Klammernpaar. Abbildung 11.3 definiert die genaue Syntax
Search WWH ::




Custom Search