Java Reference
In-Depth Information
vor();
17
boolean probe = maulLeer();
18
// ...
19
probe = probe || test;
20
// ...
21
/* Ende von Block 1.2 */
22
}
23
/* Ende von Block 1 */
24
25
}
In dem Beispiel werden insgesamt drei Variablen definiert. Die Variable
test
ist gültig von Zeile
5 bis Zeile 24, kann also insbesondere in Zeile 5 und Zeile 20 benutzt werden. In Zeile 9 wird im
Block 1.1 eine Variable namens
probe
definiert. Diese Variable ist gültig von Zeile 10 bis zum Ende
von Block 1.1 in Zeile 13. Da der Gültigkeitsbereich der ersten Variable
probe
in Zeile 13 endet,
kann in Zeile 18 in Block 1.2 erneut eine Variable mit dem Namen
probe
definiert werden. Diese
ist gültig von Zeile 19 bis zum Ende des Blockes 1.2 in Zeile 22.
Im nächsten Beispiel sind drei syntaktische Fehler eingebaut worden:
1
void main() {
2
{
boolean test = vornFrei();
3
weiter();
4
}
5
test = !test;
// Fehler
6
7
}
8
9
void weiter() {
10
test = test || kornDa();
// Fehler
// ...
11
boolean probe = !probe;
// Fehler
12
// ...
13
boolean b1 = maulLeer(), b2 = !b1;
14
15
}
Der Gültigkeitsbereich der Variablen
test
erstreckt sich von Zeile 3 bis Zeile 4, d.h. der erste Fehler
wird vom Compiler in Zeile 6 gemeldet. Hier wird die Variable
test
außerhalb ihres Gültigkeitsbe-
reichs benutzt. Dasselbe gilt auch für Zeile 10, die den zweiten Fehler enthält.
Der dritte Fehler hat sich in Zeile 12 eingeschlichen. Der Gültigkeitsbereich einer Variablen beginnt
nämlich erst hinter der Variablendefinition. Insbesondere ist es also nicht zulässig, den Variablenna-
men bereits im Initialisierungsausdruck zu benutzen.
Die Definition in Zeile 14 ist jedoch korrekt;
b1
wird vor
b2
definiert und initialisiert, sodass die
Initialisierung von
b2
mit der Negation des Wertes von
b1
wohldefiniert ist.
Ebenfalls einen Fehler enthält das nächste Beispiel:
1
boolean istOk() {
2
boolean test = vornFrei() && kornDa();
while (test) {
3
nimm();
4
Search WWH ::
Custom Search