Logo Logo
InfoHome Themen Projekte Links Software
Themen
JavaHamster
Vorbereitungen
Hamstersimulator
Syntaxdiagramme
Anweisung&Programme
Prozeduren
Auswahlanweisungen
Wiederholungsanw.
Boolsche Funktionen
int-Variablen
Definition
Wertzuweisung
Arithmetische Ausdrücke
Vergleichsausdrücke
Prioriät von Operatoren
Gültigkeitsbereich
for-Schleife
Boolsche Variablen
Funktionsparameter
Exkurs: Dualzahlen
Aufgaben
BlueJ
Java
HTML
XHTML
CSS
XML
Datenbanken
MySQL
Theoretische Informatik
PHP
Kara
Lego-Roboter
Algorithmen

Gültigkeitsbereich einer Variablen

Als Gültigkeitbereich einer Variablen wird der Teil eines Programmes bezeichnet, in dem die Variable genutzt werden kann, d.h. in dem der Name der Variablen verwendet werden darf. Hierbei macht es einen Unterschied, ob die Variablendefinition als Anweisung oder als Definition eingesetzt wird.

Globale Variablen

Wird eine Variable im Definitionsteil eines Programms definiert, also neben den Prozeduren und Funktionen, dann gilt folgende Vereinbarung:

Der Gültigkeitsbereich einer im Definitionsteil definierten Variablen - auch globale Variable genannt - umfasst das gesamte Programm mit Ausnahme des Initialisierungsausdrucks der Variablen selbst sowie der Initialisierungsausdrücke von anderen globalen Variablen, die erst später definiert werden. Im gesamten Programm dürfen nicht mehrere globale Variablen mit demselben Namen definiert werden.

Es ist auch möglich, globale Variablen zu benutzen, ohne sie vorher definiert zu haben; die Definition erfolgt dann weiter unten im Programmcode. Vermeiden Sie solche Fälle jedoch, da derartige Programme schwer verständlich sind. Gewöhnen Sie sich an, auch globale Variablen vor ihrer ersten Benutzung zu definieren.

Bei der Initialisierung globaler Variablen ist darauf zu achten, dass im Initialisierungsausdruck nur Namen von globalen Variablen auftreten dürfen, die vorher definiert worden sind. Der Grund hierfür ist, dass globale Variablen in der Reihenfolge initialisiert werden, in der sie im Programm definiert werden.

// Definition einer globalen Variable
int koerner = 0;

void main()
{
  sammle();
  while(vornFrei())
  {
    vor();
    sammle();
  }
  if(koerner > 20) // Zugriff auf die globale Variable
  {
    linksUm();
  }
}

void sammle()
{
  while(kornDa()){
    nimm();
    koerner = koerner + 1; // Zugriff auf die globale Variable
  }
}

Lokale Variablen

Der Gültigkeitsbereich einer in einer Anweisung definierten Variablen - auch lokale Variable genannt - erstreckt sich von der der Variablendefinition folgenden Anweisung bis zum Ende desselben Blockes und umschließt alle inneren Blöcke. Im Gültigkeitsbereich einer lokalen Variablen darf keine weitere Variable mit demselben Namen definiert werden.

Bsp.:

void main()
{ // Beginn von Block 1
  int test = 0; // Definition einer lokalen Variable
  if (test == 0) // Zugriff auf die lokale Variable
  { // Beginn von Block 1.1
    nimm();
    vor();
    test = test + 1; // Zugriff auf die lokale Variable
  } // Ende von Block 1.1
  else
  { // Beginn von Block 1.2
    linksUm();
  } // Ende von Block 1.2

  // ...
} // Ende von Block 1


Da Prozedurrümpfe immer einen abgeschlossenen Block bilden, können jederzeit Variablen mit dem gleichen Namen in verschiedenen Prozeduren bzw. Funktionen definiert werden. 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.

Es ist erlaubt, lokale Variablen mit dem Namen einer globalen Variablen zu versehen. Dann "überdeckt" der Gültigkeitsbereich der lokalen Variablen den Gültgkeitsbereich der gobalen Variablen, d.h. tritt im Gültigkeitsbereich der lokalen Variablen der zweifach vergebene Name auf, dann ist damit die lokale Variable gemeint. Es ist nicht möglich, im Gültigkeitsbereich der lokalen Variablen auf eine globale Variable mit demselben Namen zuzugreifen.

» drucken: pdf | html

© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück