Sichtbarkeit Variable in Schleife

jaykop

Mitglied
Hallo,

meine Frage bezieht sich auf die sichtbarkeit der Variable b in folgenden Codes.
Im ersten Code ist die Variable b nicht sichtbar für das Befehl System.out.println(b);
Bei dem zweiten Code ist es aber sichtbar nachdem ich die Anweisung break; benutzt habe. Wieso ?

Welche möglichkeit habe ich um b im ersten Code sichtbar zu machen ?
Ich habe die Variable b schon oben als boolean definiert.

Code 1:
Java:
   public static void main(String[] args) {

        int x = 22;
        int y = 33;

        boolean b;
        boolean c;

         while(true){
            if (x % 11 == 0 && y % 11 == 0) {
                c = false;
                b = true;
            }
         }     
    System.out.println(b);
}

Code 2:
Java:
   public static void main(String[] args) {

        int x = 22;
        int y = 33;

        boolean b;
        boolean c;

         while(true){
            if (x % 11 == 0 && y % 11 == 0){
                c = false;
                b = true;
                break;
            }
         }     
    System.out.println(b);
}
 
Warum nutzt du keine for schleife?
Java:
for(boolean b = true;b;)
..

Läuft solange b gilt. Anstelle von B kannst du halt auch a oder nicht a/b nehmen.
Dann ist die Variable aber nur innerhalb der Schleife lesbar.
 
meine Frage bezieht sich auf die Sichtbarkeit der Variable b in folgenden Codes.

Das ganze hat mit Sichtbarkeit gar nichts zu tun!
Und eine For-schleife ändert nicht s an der Problematik.
Auch das while könnte mit
Code:
while (b)
formuliert werden.

Aber warum machst du überhaupt eine Schleifen-konstruktion für ein einziges if ?!?
Bei anderen Werten kommst du auch in Code2 nie mehr aus der Schleife raus!

Naja; weiterüben, nur so lernt man dazu.
 
Danke für die Antworten.

@ AquaBall: Ich habe einfach so ohne einen sinn die if abfrage in die While Schleife gepackt danach konnte ich mir aber nicht erklären warum der Compiler gemekert hat.

@ AngryDeveloper: Danke für deine Antwort. Ich glaube daran liegt es das man einfach nicht aus der Schleife rauskommt. Weil System.out.println(b); nie ausgeführt wird meckert der Compiler.
 

Neue Themen


Zurück
Oben