以下是存在常量变量的代码
为什么案例标签必须是常量表达式,如果我们提供变量作为案例标签,编译器将引发编译错误
Class Test
{
public static void main(String[] args )
{
int a =10 ,b=20 ,c=30 ; //Here i give constant value
switch(a){
case a : System.out.println("10");
break;
case b : System.out.println("20");
break;
case c : System.out.println("30");
break;
default : System.out.println("Default Statement ");
}
}
}
答案 0 :(得分:0)
来自Oracle认证(OCA)培训文档:
交换机和案例的法律声明
switch语句的一般形式是
switch (expression) {
case constant1: code block
case constant2: code block
default: code block
}
一个case常量必须求值为switch表达式可以使用的相同类型,还有一个附加和大约束:case常量必须是编译时常量!由于case参数必须在编译时解析,因此只能使用一个使用文字值立即初始化的常量或最终变量。仅仅是最终的还不够;它必须是编译时常量。
什么在起作用,什么不起作用的例子:
final int a = 1;
final int b;
b = 2;
int x = 0;
switch (x) {
case a: // ok
case b: // compiler error
}
在您的情况下,请使用:
final int a=10, b=20, c=30;
答案 1 :(得分:0)
在java中,Constant表示其值不应再次更改。
因此,如果您在变量之前放置 final 关键字,那么对于java而言,这些将变为常量,而编译器不会给出错误。
final int a =10 ,b=20 ,c=30 ; //Here i give constant value