温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Switch开关如何定义

发布时间:2026-07-26 01:34:28 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

在 Java 中,switch 开关(选择结构)主要用于根据一个变量的值,执行不同的代码分支。下面从基本语法、支持的类型、示例、注意事项几个方面说明。


一、基本语法(传统 switch)

switch (表达式) {
    case1:
        // 代码
        break;
    case2:
        // 代码
        break;
    default:
        // 默认代码
}

示例

int day = 3;

switch (day) {
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break;
    default:
        System.out.println("未知日期");
}

二、switch 支持的数据类型

✅ Java 7 及以后支持:

  • byte
  • short
  • char
  • int
  • enum(枚举)
  • String(Java 7+)

❌ 不支持:

  • long
  • float
  • double
  • boolean

String 示例

String color = "red";

switch (color) {
    case "red":
        System.out.println("红色");
        break;
    case "blue":
        System.out.println("蓝色");
        break;
    default:
        System.out.println("未知颜色");
}

三、break 的作用(非常重要)

如果不写 break,会发生 case 穿透(fall-through)

int num = 1;

switch (num) {
    case 1:
        System.out.println("1");
    case 2:
        System.out.println("2");
    default:
        System.out.println("default");
}

输出:

1
2
default

✅ 一般建议每个 case 都加 break


四、Java 14+ 新特性:switch 表达式(更简洁)

1️⃣ 箭头语法(推荐)

int day = 3;

String result = switch (day) {
    case 1 -> "星期一";
    case 2 -> "星期二";
    case 3 -> "星期三";
    default -> "未知";
};

System.out.println(result);

✅ 优点:

  • 不需要 break
  • 不容易出错
  • 可以直接返回值

2️⃣ 带 yield 返回值(复杂逻辑)

int score = 85;

String level = switch (score / 10) {
    case 10, 9 -> "优秀";
    case 8 -> {
        yield "良好";
    }
    case 7 -> "中等";
    default -> "不及格";
};

System.out.println(level);

五、枚举 enum + switch(常见用法)

enum Season {
    SPRING, SUMMER, AUTUMN, WINTER
}

Season season = Season.SUMMER;

switch (season) {
    case SPRING -> System.out.println("春天");
    case SUMMER -> System.out.println("夏天");
    case AUTUMN -> System.out.println("秋天");
    case WINTER -> System.out.println("冬天");
}

六、常见错误

❌ 忘记 break
❌ case 值重复
❌ switch 表达式结果为 null(String 时)

String s = null;
switch (s) { // NullPointerException
}

七、什么时候用 switch?

✅ 适合:

  • 多条件等值判断
  • 替代多个 if-else

❌ 不适合:

  • 范围判断
  • 复杂逻辑判断

如果你愿意,我可以:

  • ✅ 对比 switchif-else
  • ✅ 给你一个完整 Java 示例类
  • ✅ 按你使用的 Java 版本(8 / 11 / 17 / 21)讲解

你用的是什么 Java 版本?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI