Java Reference
In-Depth Information
16.2.4.2 Prozedur felderVor
Die Implementierung des zweiten Beispiels aus Abschnitt 16.1 (der Hamster soll „anzahl“ Schritte
nach vorne laufen, wobei „anzahl“ ein Parameter ist) hat folgende Gestalt:
void felderVor(int anzahl) {
while ((anzahl > 0) && vornFrei()) {
vor();
anzahl--;
}
}
void main() {
felderVor(1);
linksUm();
felderVor(3 * -5);
linksUm();
int n = 7;
felderVor(n);
linksUm();
int anzahl = 4;
felderVor(anzahl);
linksUm();
}
Wir definieren also eine Funktion namens felderVor mit einem formalen Parameter vom Typ int
und dem Namen anzahl . Diesen formalen Parameter benutzen wir in der Funktion genauso wie eine
normale Variable. In der Bedingung der while-Schleife wird der Parameter bspw. zur Bildung eines
Vergleichsausdrucks eingesetzt. Im Schleifenrumpf wird ihm ein neu berechneter Wert zugewiesen.
Was in der Funktionsdefinition fehlt, ist lediglich eine Initialisierung der Variablen anzahl mit ei-
nem Wert, die jedoch dringend notwendig ist, um die Funktion sinnvoll ausführen zu können. Diese
Initialisierung erfolgt beim Funktionsaufruf. In der ersten Zeile des Rumpfes der main-Prozedur
wird die Funktion mit dem Wert 1 als aktuellem Parameter aufgerufen, der durch das int-Literal „1“
geliefert wird. Dementsprechend wird - bevor die Anweisungen des Funktionsrumpfes ausgeführt
werden - der formale Parameter anzahl mit dem Wert 1 initialisiert.
Das zweite Mal wird die Funktion felderVor mit dem Wert -15 als erstem und einzigen aktuellen
Parameter aufgerufen, der durch den arithmetischen Ausdruck 3*-5 berechnet wird. Dieses Mal
wird der formale Parameter anzahl der Funktion also mit dem Wert -15 initialisiert, bevor die
Anweisungen des Funktionsrumpfes ausgeführt werden.
Beim dritten Funktionsaufruf wird der aktuelle Wert der Variablen n (der beträgt zur Zeit des Funk-
tionsaufrufs 7 , bedingt durch die vorangehende Zuweisung) als aktueller Parameter genutzt, d.h.
der formale Parameter anzahl wird mit dem aktuellen Wert 7 der Variablen n initialisiert. Von be-
sonderer Bedeutung ist in diesem Zusammenhang die Tatsache, dass es sich bei der Variablen n
und der Parametervariablen anzahl um zwei verschiedene Variablen handelt, für die beide eigener
Speicherplatz reserviert ist. Die Manipulation der Variablen anzahl innerhalb des Funktionsrump-
fes hat keinen Einfluss auf die Variable n . Als Parameter werden in der Hamster-Sprache (und in
Search WWH ::




Custom Search