java中的switch语句

本文详细介绍了 Java 中 switch 语句的使用方法及其不同版本的语法特点,通过实例展示了如何根据不同条件输出对应的星期名称,并解释了 break 语句的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
选择语句 switch语句
编写格式
switch(表达式){
case 常量1:
要执行的语句;
break;

case 常量2:
要执行的语句;
break;

case 常量3:
要执行的语句;
break;

default:
要执行的语句;
break;
}
执行流程:表达式和case后面的常量进行比较
和哪个常量相同,就执行哪个case后面的程序,遇到break,就全部结束

关键字:swidth case default break

switch语句中表达式的数据类型,根据不同的jdk版本,有不同的要求:
JDK1.0-1.4 数据类型接受 byte short int char
JDK1.5     数据类型接受 byte short int char enum(枚举)
JDK1.7     数据类型接受 byte short int char enum(枚举) String

案例:
如果等于1,则输出星期一
如果等于2,则输出星期二
如果等于3,则输出星期三
如果等于4,则输出星期四
如果等于5,则输出星期五
如果等于6,则输出星期六
如果等于7,则输出星期日
*/
public class SwitchDemo{
public static void main(String[] args){
//定义一个变量保存星期几
int week = 9;
switch(week){
case 1 :
System.out.println("星期一");
break;

case 2 :
System.out.println("星期二");
break;

case 3 :
System.out.println("星期三");
break;

case 4 :
System.out.println("星期四");
break;

case 5 :
System.out.println("星期五");
break;

case 6 :
System.out.println("星期六");
break;

case 7 :
System.out.println("星期日");
break;

default :
System.out.println("星期 "+week+" 不存在");
break;
}
}
}
### Javaswitch 语句的用法及示例 Java 中的 `switch` 语句是一种用于根据不同的条件执行不同代码块的流程控制结构。它通常用来替代多个 `if-else` 语句,使代码更加简洁和易于维护[^2]。 #### 基本语法 `switch` 语句的基本语法如下所示: ```java switch (variable or an integer expression) { case constant: // Java code break; case constant: // Java code break; default: // Java code } ``` 其中,`switch` 后面括号中的表达式必须是整数类型、枚举类型、字符串类型(从 Java 7 开始支持)或任何可以转换为整数的类型。每个 `case` 分支后跟一个常量值,并且通常以 `break` 语句结束,以防止“fall-through”现象,即执行完当前 `case` 后继续执行下一个 `case` 的情况[^1]。 #### 使用示例 ##### 示例 1:基本类型判断 `switch` 可以用于基本数据类型(如 `int`、`char` 等)进行条件判断。例如,判断一周中的某一天: ```java int day = 1; String dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; default: dayName = "Unknown"; } System.out.println(dayName); // 输出 Monday ``` ##### 示例 2:字符串类型判断 从 Java 7 开始,`switch` 支持字符串类型的判断,适用于需要根据字符串值进行分支的情况: ```java String fruit = "apple"; switch (fruit) { case "apple": System.out.println("You chose apple."); break; case "banana": System.out.println("You chose banana."); break; default: System.out.println("Unknown fruit."); } ``` ##### 示例 3:使用箭头语法(Java 14+) 从 Java 14 起,`switch` 引入了更简洁的表达式语法,使用 `->` 替代传统的 `:` 和 `break`,提升代码可读性: ```java int score = 85; String grade = switch (score) { case 90..100 -> "A"; // 范围匹配(Java 21+) case 80..89 -> "B"; case 70..79 -> "C"; default -> "F"; }; System.out.println(grade); // 输出 B ``` ##### 示例 4:记录类解构(Java 17+) 在 Java 17 中,`switch` 支持与记录类(record class)结合使用,实现对象的模式匹配和解构: ```java record Color(int r, int g, int b) {} Color color = new Color(255, 0, 0); switch (color) { case Color(255, 0, 0) -> System.out.println("Red"); case Color(int r, int g, int b) -> System.out.printf("RGB: (%d, %d, %d)%n", r, g, b); } ``` #### 注意事项 - **避免 fall-through**:如果不希望某个 `case` 执行结束后继续执行下一个 `case`,应在该分支末尾加上 `break`。 - **default 分支**:建议始终包含 `default` 分支,以处理未覆盖的所有情况。 - **表达式返回值**:在 Java 12 及以上版本中,`switch` 可以作为表达式使用,并返回一个值,这使得其在状态机或计算器等场景中非常有用。 - **模式匹配**:Java 17 引入了对模式匹配的支持,允许在 `switch` 中直接解构对象,从而简化多态对象的处理逻辑[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值