Java Reference
In-Depth Information
vor();
5
boolean test = vornFrei() && kornDa();
// Fehler
6
}
7
8 }
Der Fehler wird vom Compiler in Zeile 6 gemeldet. Der Gültigkeitsbereich der Variablen test , die
in Zeile 2 definiert wird, erstreckt sich bis Zeile 8 und es ist nicht erlaubt, innerhalb dieses Gültig-
keitsbereiches eine weitere Variable gleichen Namens zu definieren, was aber in Zeile 6 versucht
wird.
Da Prozedurrümpfe immer einen abgeschlossenen Block bilden, können jederzeit Variablen mit glei-
chem Namen in verschiedenen Prozeduren bzw. Funktionen definiert werden:
boolean linksFrei() {
linksUm();
boolean test = vornFrei();
rechtsUm();
return test;
}
boolean rechtsFrei() {
rechtsUm();
boolean test = vornFrei();
linksUm();
return test;
}
Was zwar zulässig ist, jedoch zu Missverständnissen führen kann und daher vermieden werden sollte,
ist die Verwendung ein und desselben Namens sowohl für eine Prozedur als auch für eine (lokale)
Variable. Folgende boolesche Funktion überprüft zum Beispiel, ob sich links, rechts, vor und hinter
dem Hamster eine Mauer befindet:
boolean frei() {
boolean frei = vornFrei();
linksUm();
frei = frei && vornFrei(); // links frei?
linksUm();
frei = frei && vornFrei(); // hinten frei?
linksUm();
frei = frei && vornFrei(); // rechts frei?
linksUm();
return frei;
}
Auch wenn es nicht unbedingt erforderlich ist, gewöhnen Sie sich bitte an, Variablendefinitionen
möglichst am Anfang eines Blockes zu platzieren. Das erhöht die Übersichtlichkeit Ihrer Program-
me.
Search WWH ::




Custom Search