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; }