Java在对Switch中赋值的变量的作用域

在Switch语句外定义一个全局变量,在Switch语句中对变量进行赋值,赋的值能否保留到Switch语句以外?

当然可以了, 只要使用的地方 和 变量 是在同作用域都可以的

int a;
int b;  // 用作演示,这里没有赋值
switch(b) {
    case 1:  a = 1;
    default : a = 2;
}
// 下面可以继续访问a
System.out.println(a);

如有帮助,欢迎点赞+采纳哈!

可以,如果在 switch 语句外定义了一个全局变量,在 switch 语句中给它赋值,那么这个赋值的值会一直保存到程序的末尾。也就是说,在 switch 语句外也可以访问和使用这个变量,并且它的值将是在 switch 语句中赋的值。

以下是一个简单的示例代码,展示了如何在 switch 语句外定义一个全局变量并在 switch 语句中对其进行赋值:

public class Example {
    static int globalVar; // 在 switch 语句外定义一个全局变量
    
    public static void main(String[] args) {
        int input = 1;
        switch (input) {
            case 1:
                globalVar = 10; // 在 switch 语句中给全局变量赋值
                break;
            default:
                globalVar = 20;
                break;
        }
        System.out.println(globalVar); // 输出全局变量的值,将会是在 switch 语句中赋的值
    }
}


在这个示例代码中,我们在 switch 语句外定义了一个静态变量 globalVar。在 switch 语句中,当 input 的值为 1 时,我们将 globalVar 的值赋为 10。然后,我们在 switch 语句外输出 globalVar 的值,这时候它将会是 10,证明了在 switch 语句外可以访问并使用 switch 语句中赋的值。