在处理同一个表达式的多个选项时,使用switch/case语句可以使代码更加简洁和易读。if/else语句可能会显得笨拙,尤其是当有多个选项需要判断时。
一、快速入门
switch/case语句适用于根据不同的条件执行不同的代码块。
下面是一个示例:
public class SwitchCaseExample {
public static void main(String[] args) {
int option = 2;
switch (option) {
case 1:
System.out.println("选择了选项 1");
break;
case 2:
System.out.println("选择了选项 2");
break;
case 3:
System.out.println("选择了选项 3");
break;
default:
System.out.println("无效选项");
break;
}
}
}
在这个例子中,我们定义了一个整型变量 option,然后使用 switch 语句根据不同的值进行分支处理。
根据 option 的值,switch 语句将会执行相应的代码块。如果 option 的值为1,那么将会打印出"选择了选项 1";如果 option 的值为2,则会打印出"选择了选项 2";如果为3,则打印出"选择了选项 3"。
如果 option 的值不匹配任何一个 case,则执行 default 代码块中的语句。在上述例子中,如果 option 的值不是1、2或3,将会输出"无效选项"。
需要注意的是,在每个 case 的代码块末尾要加上 break 语句,以防止其他 case 的代码被执行。break 会跳出 switch 语句,使程序继续执行 switch 之后的代码。
这是一个简单的 switch/case 语句的示例,你可以根据实际需求在不同的 case 中编写适当的代码块。
二、case标签
在 Java 的 switch/case 语句中,case 标签可以是以下类型的常量表达式:
1. 整数类型:byte、short、int 和 char。
- 示例:case 1:
2. 枚举类型:
- 示例:case MyEnum.VALUE:
3. 字符串类型(Java 7+):
- 示例:case "Hello": 或者 case "yes": ,case "no":
需要注意的是,case 标签必须是编译时常量,而不能是变量或动态计算的表达式。
三、关键字的使用
在 switch/case 语句中,default、continue 和 break 是三个常用的关键字。
它们的使用如下:
1. default:
- default 关键字是在没有匹配到任何 case 标签时执行的代码块。
- default 通常放在 switch 语句的最后,作为可选项,用于处理未匹配到的情况。
- 注意事项:使用 default 时要确保它在 switch 语句中的位置正确,通常放在最后;同时,要明确考虑处理未匹配到的情况。
示例:
int option = 5;
switch (option) {
case 1:
System.out.println("选择了选项 1");
break;
case 2:
System.out.println("选择了选项 2");
break;
default:
System.out.println("无效选项");
break;
}
2. break:
- break 关键字用于跳出 switch 语句或循环语句,终止当前的代码块的执行。
- 在 switch/case 语句中,每个 case 的代码块结尾都需要加上 break,以防止执行其他 case 的代码。
- 注意事项:忘记在 case 代码块末尾添加 break 会导致代码继续执行下一个 case 的代码块。
示例:
int option = 2;
switch (option) {
case 1:
System.out.println("选择了选项 1");
break;
case 2:
System.out.println("选择了选项 2");
// 在此处没有添加 break
case 3:
System.out.println("选择了选项 3");
break;
default:
System.out.println("无效选项");
break;
}
//如果 option 的值为2,输出将是:
//选择了选项 2
//选择了选项 3
3. continue:
- 在 switch/case 语句中,continue 关键字用于跳过当前迭代,并进入下一轮迭代。
- 在 switch/case 语句中使用 continue 没有直接的意义,因为它主要用于循环语句中。
- 注意事项:在 switch/case 语句中谨慎使用 continue,确保合理的代码逻辑。