java switch和枚舉
switch case用法:
先來一道面試題:
public static void test(){ int i = 11; switch (i){ case 5:case 11:case 12: System.out.println("是個5"); case 10: System.out.println("是個10"); break; case 4: System.out.println("是個4"); break; default: System.out.println("默認值"); break; } }
結果是:
是個5
是個10
結論:最終執行的方法體是什么呢?匹配上的case的冒號開始,一直到break為止,之間的case條件忽略,語句會執行。
參考鏈接:https://blog.csdn.net/weixin_39800144/article/details/80943257
枚舉:
public enum RechargeActiveType { /**0*/ Default, PerFirstRech, ContinueRech, TotalRchg, GiftBag, }
下面的使用方式會報錯:因為case后跟的是常量表達式
知道枚舉的值,可先獲取枚舉值對應的枚舉,再使用switch,
根據枚舉的值獲取對應的枚舉:
RechargeActiveType rechargeActiveType = RechargeActiveType.values()[menuValue];
使用switch(枚舉) case 枚舉常量:
switch (rechargeActiveType) { case PerFirstRech: break; case ContinueRech: break; case TotalRchg: break; case GiftBag: break; default: break; }