Waxolunist
14-11-2006, 14:36
Hallo
Bin heute auf was interessantes gestoßen und verstehe es nicht. Manchmal ist es schon seltsam, da beschäftigt man sich mit den kompliziertesten Frameworks und dann scheitert man an einer einfachen Switch-Anweisung.
Wieso funktioniert folgendes:
public class Switch {
public static void main(String[] args) {
int i = 1;
switch(i) {
case 0:
String s = "test";
System.out.println(s);
break;
case 1:
s = "test";
System.out.println(s);
break;
}
}
}
Wieso muss ich nur einmal die Variable s angeben. Ich dachte switches sind nichts anderes als einfache if-else-Angaben.
Also mit if else würde es so aussehen:
public class Switch {
public static void main(String[] args) {
int i = 1;
if (i == 0) {
String s = "test";
System.out.println(s);
} else if (i == 1) {
String s = "test";
System.out.println(s);
}
}
}
Wie werden denn Variablen in Switch-Anweisungen initialisiert? Werden die zur Compilezeit alle initialisiert?
mfg, christian
Bin heute auf was interessantes gestoßen und verstehe es nicht. Manchmal ist es schon seltsam, da beschäftigt man sich mit den kompliziertesten Frameworks und dann scheitert man an einer einfachen Switch-Anweisung.
Wieso funktioniert folgendes:
public class Switch {
public static void main(String[] args) {
int i = 1;
switch(i) {
case 0:
String s = "test";
System.out.println(s);
break;
case 1:
s = "test";
System.out.println(s);
break;
}
}
}
Wieso muss ich nur einmal die Variable s angeben. Ich dachte switches sind nichts anderes als einfache if-else-Angaben.
Also mit if else würde es so aussehen:
public class Switch {
public static void main(String[] args) {
int i = 1;
if (i == 0) {
String s = "test";
System.out.println(s);
} else if (i == 1) {
String s = "test";
System.out.println(s);
}
}
}
Wie werden denn Variablen in Switch-Anweisungen initialisiert? Werden die zur Compilezeit alle initialisiert?
mfg, christian