java中的switch使用 case expressions must be constant expressions,Duplicate case
阿新 • • 發佈:2019-01-02
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全部實現一遍。錯就錯吧