参见英文答案 >
Declaring and initializing variables within Java switches 5个
考虑以下代码:
int num = 0;
switch(num) {
case 1:
boolean bool = false;
break;
case 2:
String one;
String two;
String three;
//..simulating lots of vars
break;
default:
bool = true;
System.out.println(bool);
break;
}
由于我们被允许引用另一个案例中声明的变量,这意味着即使未选择案例1,仍然会声明boolean bool.
由于默认是最后一个选项,并且java从左到右(从上到下)工作,我假设也会声明情况2(以及任何其他情况)中的变量.
这使我认为,在选择案例之前声明的案例中,您所拥有的代码越多,实际访问该案例所需的时间与首先声明所选案例的时间相比就越长.
切换语句是否有特定原因以这种方式工作?如果有很多情况,最好不要使用if-else而不是switch语句? (谈论处理时间,纳秒)