java switch和枚举

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

 

posted @ 2020-08-29 15:34  好Wu赖  阅读(2933)  评论(0编辑  收藏  举报