Java Reference
In-Depth Information
11.3.3 Semantik
Durch die Definition einer booleschen Funktion innerhalb eines Hamster-Programms wird ein neuer
Testbefehl eingeführt, der über den Namen der Funktion aufgerufen werden kann. Ansonsten hat
die Definition einer booleschen Funktion keine direkten Auswirkungen auf die Ausführung eines
Programms.
11.3.4 Beispiele
In den folgenden beiden Funktionsdefinitionen werden die im Motivationsabschnitt 11.1 geschil-
derten Beispiele implementiert. Im Rumpf der Funktion linksFrei() wird dabei die ebenfalls
definierte Prozedur rechtsUm aufgerufen.
boolean mauerDa() {
return !vornFrei();
}
boolean linksFrei() {
linksUm();
if (vornFrei()) {
// links ist frei
rechtsUm();
return true;
} else {
// links ist eine Mauer
rechtsUm();
return false;
}
}
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
Die folgende Funktionsdefinition ist dahingegen fehlerhaft, denn bei der Ausführung des else-Teils
der if-Anweisung endet die Funktion, ohne dass eine boolesche return-Anweisung ausgeführt wor-
den ist:
boolean nichtsGehtMehr() {
if (vornFrei()) {
vor();
return false;
} else {
linksUm();
}
}
Search WWH ::




Custom Search