Java开关:变量声明和范围 [英] Java switch : variable declaration and scope

查看:169
本文介绍了Java开关:变量声明和范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Java编译器如何处理以下交换机块?
'b'变量的范围是什么?

How does the Java compiler handle the following switch block ? What is the scope of the 'b' variable ?

请注意,'b'变量仅在switch语句的第一个分支中声明。试图在第二个分支中声明它也会导致重复的局部变量编译错误。

Note that the 'b' variable is declared only in the first branch of the switch statement. Attempting to declare it in the second branch as well results in a "duplicate local variable" compilation error.

    int a = 3;
    switch( a ) {
    case 0:
        int b = 1;
        System.out.println("case 0: b = " + b);
        break;
    case 1:
        // the following line does not compile: b may not have been initialized
        // System.out.println("case 1 before: b = " + b);
        b = 2;
        System.out.println("case 1 after: b = " + b);
        break;
    default:
        b = 7;
        System.out.println("default: b = " + b);
    }

注意:上面的代码用java 1.6编译器编译。

Note: the above code compiles with a java 1.6 compiler.

推荐答案

范围与正常情况一样,由 {和<$ c $分隔c>} 。

The scope is, just as usual, delimited by { and }.

这篇关于Java开关:变量声明和范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆