[JAVA] Wieso wird ein "long" in einem "if" immer 0?

...komplette Frage anzeigen

3 Antworten

Ich glaube, du redst davon:

if(...) {
long a = ...;
}

System.out.println(a); //Output: 0

Der Punkt ist, dass die Variable a in der if-Schleife erstellt worden ist. Die Variable a ist dann in der if-Schleife und auch NUR in der if-Schleife definiert worden. Warum? Wegen dem Semikolon. Das begrenzt sozusagen den Bereich der Variable, wo sie bekannt ist. Ausserhalb des Semikolons weiss niemand von der Variablen a bzw. weiss alles ausserhalb der if-Schleife nicht, was überhaupt in der if-Schleife abgeht.

public void ichSollteSchlafenGehen() {
//kennt a nicht

if(...) {
long a = ...;

//kennt a hier
}

//kennt a nicht

Wiederum weiss die if-Schleife alles aussen herum.

public void ichSollteJetztEchtMalSchlafenGehen() {
long a = 0;

if(...) {
a = 5; //hier kennt if-Schleife die Variable a

}
}

Ich hoffe mal, es ist das gewesen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Lukascanhelp
30.11.2016, 22:30

Habe am Anfang einen "static long y" definiert

0

Zeig mal deinen Code, du machst was ganz anderes einfach falsch... 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Lukascanhelp
30.11.2016, 22:04
long x = Eingabe in die cmd

if(...) {
   long y=x;
}
0

Was möchtest du eigentlich programmieren?

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?