Java教程 12 程序流程控制-条件语句-switch用法

switch

switch分支是Java中另一种条件控制结构,它通过比较表达式的值与各个case标签是否相等,来决定执行哪一段代码。下面详细介绍switch分支的用法。

switch分支的执行流程

switch分支的基本结构如下:

switch (表达式) {
    case 值1:
        // 当表达式的值等于值1时执行的代码
        break; // 可选,用于退出switch语句
    case 值2:
        // 当表达式的值等于值2时执行的代码
        break; // 可选
    // 可以有多个case
    default:
        // 当表达式的值不等于任何case标签时执行的代码
}

示例

// 电子备忘录示例
String week = "周三";
switch (week) {
    case "周一":
        System.out.println("学习写代码");
        break;
    case "周二":
        System.out.println("请求同学帮忙");
        break;
    case "周三":
        System.out.println("看篮球比赛");
        break;
    case "周四":
        System.out.println("白天学习");
        break;
    case "周五":
        System.out.println("今晚游戏");
        break;
    case "周六":
        System.out.println("与同学happy");
        break;
    case "周日":
        System.out.println("郁郁寡欢、准备学习");
        break;
    default:
        System.out.println("您输入的星期信息不存在~~~");
}

if 与 switch 的选择

虽然if分支在功能上更为强大,但在某些场景下,switch分支的使用更为直观和方便。

  • 使用原则
    • 如果需要对一个范围进行判断,建议使用if分支结构。
    • 如果需要判断的值是固定的几个选项之一,建议使用switch分支结构。

switch 注意事项

使用switch分支时,需要注意以下几点:

  1. 表达式类型

    • JDK 5及以前,表达式类型只能是byteshortintchar
    • JDK 5开始支持枚举(enum)。
    • JDK 7开始支持String
    • 不支持doublefloat类型。
  2. case标签

    • 每个case标签后面的值不允许重复,且只能是字面量,不能是变量。
  3. break语句

    • 每个case块后通常应该跟一个break语句,以避免case穿透现象。
    • 如果没有break,则程序会继续执行下一个case块的代码,直到遇到break或switch语句结束。

演示case穿透现象

String day = "周三";
switch (day) {
    case "周二":
    case "周三":
    case "周四":
        System.out.println("请老师帮帮");
        // 注意:这里只有一个break,放在了最后
        break;
    case "周五":
        System.out.println("准备迎接周末");
        break;
    default:
        System.out.println("未知的一天");
}
// 输出:请老师帮帮

在这个例子中,如果day的值是"周二"、"周三"或"周四"中的任何一个,都会执行"请老师帮帮"这行代码,并且由于break语句位于这三个case标签的外面,所以它们会共享相同的执行路径,直到遇到break语句。这就是case穿透现象的一个应用场景。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容