gpt4 book ai didi

java - Java开关控件中的局部变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:16 26 4
gpt4 key购买 nike

<分区>

我发现这个案例有点奇怪:

    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 block 中,所以我可以理解它在不同的情况下是可访问的,尽管这似乎与它可能不会通过第一种情况的 switch 流程相矛盾,因此,可能不声明和初始化 b

但是如果 b 同时在默认分支中仍然不可访问,这不是又矛盾了吗?

对于case分支中的局部变量声明有没有特殊的执行,无论case是否匹配都会运行?如果是,那么为什么默认分支不能访问它?

编辑重复标志:这里的问题不是关于在 case 分支中声明的变量如何不是局部变量(正如我上面提到的),而是为什么在 case 分支中声明的局部变量可以在 case 外部访问,但是不是它初始化的值。

找到了一个类似的问题,我相信它可以回答我的问题:Declaring and initializing variables within Java switches

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com