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

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全部实现一遍。错就错吧



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值