编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Java的switch条件语句

switch (表达式){
    case 常量1:
        // 代码块1;
        break;
    case 常量2:
    // 代码块2;
    break;
  default:
    // 代码块n;
    break;
}

关键字说明

  • switch:表示条件表达式,括号里的值是一个规定数据类型的值。

  • case:表示条件分支,case后面跟一个常量,每个case后面的值必须不一样。case的个数可以为0个。

  • default:表示默认分支,default可以省略,通常放在最后。

  • break:表示“停止”,跳出当前switch语句。

switch支持的数据类型

switch()括号中的表达式的结果的类型只能是特定类型,我们将一个double类型的变量放入,发现编译报错:Cannot switch on a value of type double. Only convertible int values, strings or enum variables are permitted。

不难看出这里括号中只支持是int,String,enum型的。
由于java中的类型的自动转型,byte、char、short这三种可以自动转换为int型的类型括号中也支持。
由于java中包装类的自动拆箱,Integer、Byte、Char、Short这四种类型括号中也支持。
总结来说:switch()括号中的表达式支持int、String、enum以及可以自动转型为int的其他类型。

注意

在Java1.6中表达式的类型只能为int和enum,在java1.7后支持了对String的判断,String类型比较特殊。

public class Main {
    public static void main(String[] args) {
        char grade = 'C';
        switch(grade)
        {
            case 'A' :
                System.out.println("优秀");
                break;
            case 'B' :
            case 'C' :
                System.out.println("良好");
                break;
            case 'D' :
                System.out.println("及格");
            case 'F' :
                System.out.println("你需要再努力努力");
                break;
            default :
                System.out.println("未知等级");
        }
        System.out.println("你的等级是 " + grade);
    }
}

执行结果为:

良好
你的等级是 C

说通俗一点就是当前的值,与下面的几个值对比,如果相同的,就执行当前的case,如果找不到对应的值,就执行最后默认的default中的代码。


未经允许不得转载: 技术文章 » Java编程 » Java的switch条件语句