在一种情况下使用变量,在另一种情况下声

我不是 Java 的新手,但这是我以前从未见过的东西。

假设有一个 switch case,在 case 0 中声明一个变量使变量在其他情况下可见,这是一件奇怪的事情,我认为这不是 java 风格。


public static void main(String[] args) {

    String _case = "case";


    switch (_case) {

        case "1":

            String foo = "foo";

            break;

        case "2":

            String bar = "bar";

            break;

        case "case":

            foo = "foo";

            System.out.println(foo);

            // System.out.println(bar); //Variable bar might not have been initialized

            break;

    }

}

如果1未验证大小写,为什么以及如何String foo声明变量?

在线执行代码



Smart猫小萌
浏览 111回答 1
1回答

MMTTMM

因为您foo = "foo"在最后一个案例中进行了设置,所以它保证变量在那个时候被实例化。bar在最后一种情况下没有任何时刻被实例化,给你这个错误。这是因为 case 中变量的作用域等于整个 switch 语句的作用域。有关此问题的其他问题的更多信息
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java