java中开关_Java开关控件中的局部变量

这个问题已经在这里有了答案:????????????>????????????Declaring and initializing variables within Java switches????????????????????????????????????5个

我发现这种情况有点奇怪:

int x = 1;

switch(x){

case 0 :

boolean b = false;

break;

case 1 :

b = true; //will compile just right

System.out.println(b); //will print true

break;

default:

System.out.println(b); //will not compile

}

我只是觉得这很混乱.据说可以在整个代码块中访问局部变量.当然,b在一个switch块内,因此我可以理解,在不同情况下它是可访问的,即使这似乎与可能无法通过第一种情况的开关流程相矛盾,因此可能无法声明和初始化b.

但是,这是否又再次矛盾b同时在默认分支中仍不可访问?

是否在case分支中对本地变量声明进行特殊执行,无论是否匹配大小写,该分支都会运行?如果是,那么为什么默认分支无法访问它?

编辑重复标记:这里的问题不是关于case分支中声明的变量如何不是局部的(如上所述),而是为什么在case外部声明的局部变量为什么可以在其外部访问,而不是值它已经初始化过了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值