Blockregeln

Status
Nicht offen für weitere Antworten.
H

Hecki

Gast
Hallo,
ich bin gerade etwas verwirrt, da uns in der Schule ein kleines Programm gegeben wurde in dem die Regeln von "{" und "}" gezeigt werden...

Code:
{ //Block 1
int a=1, b=1;
System.out.println("a: " + a + "b: " +b);

  { //Block 2
    int a=2, c=b;
    System.out.println("a: " + a + "b: " + b + "c: " + c);

        { //Block 3
         int a=3, c++, b=b+2;
         System.out.println("a: " + a + "b: " + b + "c: " + c);
         }
    }

 //Block 1 unten
System.out.println("a: " + a + "b: " +b);
 }

So, die Ausgabe ist laut Angaben des Lehrers:
Block 1: a: 1 b: 1
Block 2: a: 2 b: 1 c:1
Block 3: a: 3 b: 3 c:2
Block 1 unten: a: 1 b: 1

So....Nehme ich zB die "b" Variable kommt schon die erste Frage auf:
Er behauptet das die Variablen immer nur in einem Block gültig sind, nun setzt er aber im Block2 c=b..."b" gibt es aber laut seiner Aussage garnicht??
Genauso wie im dritten Block, c dürfte es demnach garnicht geben....
Dann dürfte jedoch im "Block 1 unten" nicht "a: 1 b: 1" rauskommen sondern eben das aus dem Block davor (3)...
Nun, ist das egal und sind die Variablen doch auch in mehreren Blöcken gültig?
Kann mir da jemand ein wenig helfen.... wir haben erst mit Java angefangen und der Lehrer war Wochenlang krank...
 

ML-Deluxe

Mitglied
Die Blöcke sind ja ineinander verschachtelt, das heißt Block 1 beinhaltet auch Block 2 und 3 und Block 2 beinhaltet auch Block 3. Zum Beispiel in Zeile 7 befindest du dich ja immernoch in Block 1, deshalb ist die Variable b immernoch gültig.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben