Java Reference
In-Depth Information
while (kornDa()) {
nimm();
gerade = !gerade;
// Zugriff auf die erst weiter unten
// definierte globale Variable
}
}
// Definition einer globalen Variablen
boolean gerade = true;
Vermeiden Sie solche Fälle jedoch, da derartige Programme schwerer verständlich und fehleranfäl-
liger sind. Gewöhnen Sie sich an, auch globale Variablen vor ihrer ersten Benutzung zu definieren.
Der Gültigkeitsbereich einer globalen Variablen umfasst nicht das gesamte Hamster-Programm. Wie
bereits erwähnt gibt es eine Einschränkung. Bei der Initialisierung globaler Variablen ist nämlich dar-
auf zu achten, dass im Initialisierungsausdruck nur Namen von globalen Variablen auftreten dürfen,
die vorher definiert worden sind. Der Grund hierfür ist der, dass globale Variablen in der Reihenfolge
initialisiert werden, in der sie im Programm definiert werden. Ohne diese Einschränkung des Gültig-
keitsbereiches globaler Variablen wäre eine wohldefinierte Initialisierung in bestimmten Fällen gar
nicht möglich, wie das folgende Beispiel zeigt:
boolean b1 = !b2;
// Fehler: Vorwaertsreferenz auf b2!
boolean b2 = !b2;
// Fehler: Vorwaertsreferenz auf b2!
boolean b3 = b1 && b2;
// ok
void main() {
// ...
}
Das nächste Beispiel demonstriert den erlaubten Fall, dass eine lokale Variable mit dem Namen einer
bereits definierten globalen Variablen definiert wird:
1 boolean gefunden = false;
2
3 void main() {
4
while (!gefunden) {
suche();
5
linksUm();
6
}
7
8 }
9
10 void suche() {
11
boolean gefunden = false;
while (!gefunden && vornFrei()) {
12
vor();
13
if (kornDa()) {
14
gefunden = true;
15
}
16
}
17
18 }
Search WWH ::




Custom Search