switch case
语句是一种用于多个条件判断的控制流语句。与 if...else
语句类似,switch
可以根据不同的条件值来选择执行不同的代码块。然而,switch case
语句特别适用于需要根据单一变量的多个可能值进行判断的场景。
目录
switch case
语句概述switch case
语法switch case
示例switch case
的注意事项switch
语句中的break
和default
- 参考资料
- 出站链接
1. switch case
语句概述
switch case
语句根据变量的值匹配不同的 case
,并执行相应的代码块。如果没有匹配到任何 case
,可以选择使用 default
语句作为默认处理。
switch
表达式会计算一个值,并与每个case
标签的常量值进行比较。- 如果找到了匹配的
case
,则执行该case
下的代码。 - 如果没有匹配到任何
case
,可以使用default
来执行默认的代码块。
2. switch case
语法
switch (表达式) {
case 值1:
// 如果表达式 == 值1,执行此代码块
break;
case 值2:
// 如果表达式 == 值2,执行此代码块
break;
case 值3:
// 如果表达式 == 值3,执行此代码块
break;
default:
// 如果没有匹配到任何 case,执行此代码块
}
- 表达式:可以是
int
、char
、byte
、short
、String
等类型的值。 - case 值:每个
case
后面的值会与表达式进行比较,如果匹配则执行对应的代码块。 - break:
break
用于跳出switch
语句,防止程序继续执行下一个case
。 - default:
default
可选,如果没有匹配到任何case
,则执行默认的代码块。
3. switch case
示例
示例 1:简单的 switch case
语句
public class SwitchCaseExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
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("无效的日期");
}
}
}
输出:
星期三
在这个例子中,switch
表达式的值为 3
,因此匹配到 case 3
,执行了对应的代码块,输出 “星期三”。
示例 2:使用 String
类型的 switch case
Java 7 及以上版本允许使用 String
类型作为 switch
的表达式。
public class SwitchStringExample {
public static void main(String[] args) {
String color = "红色";
switch (color) {
case "红色":
System.out.println("选择了红色");
break;
case "绿色":
System.out.println("选择了绿色");
break;
case "蓝色":
System.out.println("选择了蓝色");
break;
default:
System.out.println("未知颜色");
}
}
}
输出:
选择了红色
这里的 switch
使用了一个 String
类型的表达式,根据不同的颜色选择输出对应的结果。
4. switch case
的注意事项
switch
语句不支持 浮点数(float
、double
)作为表达式,通常只能使用整数类型(int
、char
、byte
、short
)或String
类型。- 在每个
case
语句块的末尾加上break
是非常重要的,否则会导致穿透(fall-through),即如果没有break
,程序会继续执行下一个case
语句块,即使它不符合条件。 default
语句是可选的,如果没有匹配到任何case
,default
会作为默认的代码块执行。
5. switch
语句中的 break
和 default
(1) break
语句
break
用于跳出 switch
语句,防止代码继续执行下一个 case
。如果省略 break
,则会导致穿透,也就是执行下一个 case
的代码块。
示例:
public class BreakExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
default:
System.out.println("无效日期");
}
}
}
输出:
星期三
星期四
无效日期
没有 break
语句时,case 3
执行后,程序继续执行了 case 4
和 default
,导致了不期望的输出。
(2) default
语句
default
语句是可选的,它在没有任何 case
匹配时执行。
示例:
public class DefaultExample {
public static void main(String[] args) {
int month = 13;
switch (month) {
case 1:
System.out.println("一月");
break;
case 2:
System.out.println("二月");
break;
case 3:
System.out.println("三月");
break;
default:
System.out.println("无效的月份");
}
}
}
输出:
无效的月份
在这个例子中,month
的值为 13
,不匹配任何 case
,所以程序执行了 default
语句块,输出 “无效的月份”。
发表回复