您的位置:首页 > 编程语言 > Java开发

java中的switch使用 case expressions must be constant expressions,Duplicate case

2014-11-07 17:03 507 查看
java中的switch问题,有时报告case expressions must be constant expressions,原因是缺少final;另外如果报告:Duplicate case,则是switch中的case值重复,用Java写时,不会像c一样,case是什么值都直接写出来,有时是类名.成员变量,如果成员变量没有定义好,则有可能会导致重复。

/**
* case expressions must be constant expressions,Duplicate case
* @author Sherlock
*
*/

class Data{
public final static int data_3 = 3;
public final int data_4 = 4;
}

public class test{
/**
* 本类中的成员变量用于switch必须是final和static.
*/
public final static int inClassVariable = 1;

public void testSwitch(){
//方法中的变量用于switch必须是final
final int inWayVariable = 1;
int test = 1;
switch(test){
case inWayVariable : {
System.out.println("inWayVariable");
}
}
}

public static void main(String[] args){
//main方法中变量用于switch必须是final
final int inMainVariable = 2;
int test = 1;
switch(test){
case inClassVariable : {
System.out.println("inClassVariable");
break;
}
case inMainVariable : {
System.out.println("inMainVariable");
break;
}
case Data.data_3 : {
System.out.println("Data.data_3");
}
}
}

}


ps:以前一直学C,然后学了一年多的java,老是有个这样的观点,要写算法就只能写C,导致对于某一个问题,在语言的选择上浪费太多时间。不知道是不是错的,反正,现在想改成什么都用java写,java也可以acm,为什么我就不能用java写跟算法有关的东西。好,我要把以前的都用Java全部实现一遍。错就错吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: