首页 > 解决方案 > 如何将我的枚举代码转换为开关

问题描述

在我的CustomerTypeApp课堂上,我需要更改getDiscountPercent方法以使用 switch 而不是 if 语句链。这是 if 语句版本:

public static double getDiscountPercent(CustomerType ct) {
        double discountPercent = 0;
        if (ct == CustomerType.RETAIL) {
            discountPercent = 0.156;
        } else if (ct == CustomerType.TRADE) {
            discountPercent = 0.30;
        } else if (ct == CustomerType.COLLEGE) {
            discountPercent = 0.20;
        }
        return discountPercent;
    }
}

以下是我尝试过的 switch 语句,但收到了错误:

枚举 switch case 标签必须是枚举常量的非限定名称

  double discountPercent = 0;

  switch(ct) {
      case CustomerType.RETAIL :
        discountPercent = 0.156;
        break;
     case CustomerType.TRADE :
        discountPercent = 0.30;
        break;
     case CustomerType.COLLEGE :
        discountPercent = 0.20;
        break;
     default :
        discountPercent = 0;
  }
  return discountPercent;

标签: javaswitch-statement

解决方案


您想切换变量 ct

switch(ct) {
        case CustomeType.retail:
            /*Command*/
            break;
        case CustomerType.TRADE:
            /*Command*/
            break;
        default:
            /*else*/
}

如果您需要进一步的帮助,请阅读这些 Java 文档


推荐阅读