Java switch没有,java – 为什么switch语句中的case没有自己的作用域?

参见英文答案 >

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语句? (谈论处理时间,纳秒)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值