Java 使用 switch 语句和枚举类型

switch 语句包被划分为一种选择语句。根据整数表达的值,进行选择操作。语句基本格式如下:

switch (interal-selector) {
            case integral-value1: statement; break;
            case integral-value2: statement; break;
            case integral-value3: statement; break;
            case integral-value4: statement; break;
            case integral-value5: statement; break;
            default: statement;
        }

注意点如下:

  1. interal-selector 即为整数表达式的值,他的意思是 interal-selector 本身是一个整数,或者经过运算之后产生一个整数。
  2. break 是可选的,如果没有 break 则语句会继续执行,直到遇到 break 或者运行到结尾
  3. default 表示在没有匹配的情况下默认执行的语句,由于已经是最后执行的所以不需要 break 语句,但是如果想写也可以

注意点一

interal-selector (或成为选择银子)需为整数表达式。很容易理解,整数表达式可以是 int 以及 int 的分装类 Integer。 同时由于, byte,short,char都可以隐含地转换成 int,所以他们也可以作为选择因子。

而float,double,long,String 则同理不可作为选择因子。

注意点二

JavaSE5 中引入新特性枚举类型,可以减弱这种限制。

创建一个枚举类型

public enum Season {
    Spring,Summer,Autumn,Winter
}

枚举类型作为选择因子

public class MainTest {

    Season season;

    public MainTest(Season season) {
        this.season = season;
    }

    public void describe() {

        switch (season) {
        case Spring:
            System.out.println("Today is" + " " + season);
            break;
        case Summer:
            System.out.println("Today is" + " " + season);
            break;
        case Autumn:
            System.out.println("Today is" + " " + season);
            break;
        case Winter:
            System.out.println("Today is" + " " + season);
            break;
        default:
            System.out.println("The end of the world ");
        }


    }

    public static void main(String[] args) {
        MainTest spring = new MainTest(Season.Spring);
        MainTest summer = new MainTest(Season.Summer);

        spring.describe();
        summer.describe();
    }
}

switch 语句需要在有限的可能集合中进行选择,而 enum 则是我们自己创建的可能集合。

绝配!

注意点三

从JDK 7开始, 我们可以针对字符串使用switch条件语句了;在JDK 6或者之前的版本,我们则不能使用针对字符串的switch条件语句。

switch (season) {
            case "aa":
                System.out.println("Today is" + " " + season);
                break;
            case "bb":
                System.out.println("Today is" + " " + season);
                break;
            case "cc":
                System.out.println("Today is" + " " + season);
                break;
            default:
                System.out.println("The end of the world ");
        }
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值