教妹学Java(十四):switch 语句详解

简介: 教妹学Java(十四):switch 语句详解

“二哥,今天我们来学习‘switch 语句’,对吧?”


“是的,三妹。Java 中的 switch 语句用来判断变量与多个值之间的相等性。变量的类型可以是 byte、short、int、long,或者对应的包装器类型 Byte、Short、Integer、Long,以及字符串和枚举。”


来看一下 switch 语句的格式:


switch(变量) {    

case 可选值1:    

// 可选值1匹配后执行的代码;    

break;  // 该关键字是可选项

case 可选值2:    

// 可选值2匹配后执行的代码;    

break;  // 该关键字是可选项

......    

 

default: // 该关键字是可选项    

// 所有可选值都不匹配后执行的代码

}    


变量可以有 1 个或者 N 个值。


值类型必须和变量类型是一致的,并且值是确定的。


值必须是唯一的,不能重复,否则编译会出错。


break 关键字是可选的,如果没有,则执行下一个 case,如果有,则跳出 switch 语句。


default 关键字也是可选的。


画个流程图:


image.png


来个示例:


public class Switch1 {
    public static void main(String[] args) {
        int age = 20;
        switch (age) {
            case 20 :
                System.out.println("上学");
                break;
            case 24 :
                System.out.println("苏州工作");
                break;
            case 30 :
                System.out.println("洛阳工作");
                break;
            default:
                System.out.println("未知");
                break; // 可省略
        }
    }
}


输出:


上学


当两个值要执行的代码相同时,可以把要执行的代码写在下一个 case 语句中,而上一个 case 语句中什么也没有,来看一下示例:


public class Switch2 {
    public static void main(String[] args) {
        String name = "沉默王二";
        switch (name) {
            case "詹姆斯":
                System.out.println("篮球运动员");
                break;
            case "穆里尼奥":
                System.out.println("足球教练");
                break;
            case "沉默王二":
            case "沉默王三":
                System.out.println("乒乓球爱好者");
                break;
            default:
                throw new IllegalArgumentException(
                        "名字没有匹配项");
        }
    }
}


输出:


乒乓球爱好者

1

枚举作为 switch 语句的变量也很常见,来看例子:


public class SwitchEnumDemo {
    public enum PlayerTypes {
        TENNIS,
        FOOTBALL,
        BASKETBALL,
        UNKNOWN
    }
    public static void main(String[] args) {
        System.out.println(createPlayer(PlayerTypes.BASKETBALL));
    }
    private static String createPlayer(PlayerTypes playerType) {
        switch (playerType) {
            case TENNIS:
                return "网球运动员费德勒";
            case FOOTBALL:
                return "足球运动员C罗";
            case BASKETBALL:
                return "篮球运动员詹姆斯";
            case UNKNOWN:
                throw new IllegalArgumentException("未知");
            default:
                throw new IllegalArgumentException(
                        "运动员类型: " + playerType);
        }
    }
}



输出:


篮球运动员詹姆斯


相关文章
|
6月前
|
JavaScript 前端开发 Java
Java switch升级之路
`switch` 是一种用于多分支条件判断的控制流语句。它通过检查一个表达式的值,然后根据不同的情况执行相应的代码块。 在大多数编程语言中,`switch` 语句由多个 `case` 分支组成,每个 `case` 后面跟着一个常量或表达式,用来与待判断的表达式的值进行比较。当找到与表达式值匹配的 `case` 时,对应的代码块将会被执行,然后程序跳出 `switch` 语句。
52 0
|
7月前
|
Java
Java选择语句之switch
Java选择语句之switch
53 1
|
14天前
|
存储 Java
模式匹配魔法:Java 21中switch语句的巨大进化
模式匹配魔法:Java 21中switch语句的巨大进化
12 0
|
14天前
|
Java
Java 14 强势登场:Switch 表达式的进化之路
Java 14 强势登场:Switch 表达式的进化之路
18 0
|
5月前
|
Java
Java中的条件语句:if语句和switch语句的作用与区别
Java中的条件语句:if语句和switch语句的作用与区别
135 0
|
1月前
|
Java
Java switch case 语句
Java switch case 语句
10 0
|
5月前
|
Java
Java的流程控制(选择结构语句 if ~ switch &循环结构语句dowhile ~ for)
程序执行的控制流程分为三种,也称为三种结构,分别是:顺序结构、和循环结构。 顺序结构指的是程序执行按照代码的编写顺序,依次从上往下开始执行,直到程序结束。程序的执行默认是顺序执行的
43 1
|
1月前
|
Java
【Java从入门到精通】Java switch case 语句
【Java从入门到精通】Java switch case 语句
21 0
|
7月前
|
Java
Java 分支结构 - if...else/switch
Java 分支结构 - if...else/switch
|
Java
【Java】switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
【Java】switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
133 0