在编程语言中,switch
语句通常有两种主要写法,具体形式可能因语言而异。以下以常见的语言(如 C、Java、JavaScript 等)为例,说明 switch
语句的两种写法。
1. 经典写法
这种写法是传统的形式,通过 case
和 break
来控制流程。
示例 (以C语言为例):
#include <stdio.h>
int main() {
int num = 2;
switch (num) {
case 1:
printf("Number is 1\n");
break;
case 2:
printf("Number is 2\n");
break;
case 3:
printf("Number is 3\n");
break;
default:
printf("Number is not 1, 2, or 3\n");
break;
}
return 0;
}
特点:
- 使用
case
语句匹配条件。 - 通过
break
语句避免继续执行后续的case
语句。 default
用来处理不匹配任何case
的情况。
2. 简洁写法
在某些现代语言(如 JavaScript ES6+、Java、Kotlin 等),可以通过表达式或其他简化语法实现类似功能。
示例 (以 JavaScript 的 ES6 为例,用对象模拟):
const fruit = "apple";
const message = {
apple: "This is an apple.",
banana: "This is a banana.",
orange: "This is an orange."
}[fruit] || "Unknown fruit.";
console.log(message);
或者 (以 Java 的 switch 表达式为例):
String fruit = "apple";
String message = switch (fruit) {
case "apple" -> "This is an apple.";
case "banana" -> "This is a banana.";
case "orange" -> "This is an orange.";
default -> "Unknown fruit.";
};
System.out.println(message);
更为完整的写法是:
String fruit = "apple";
String message = switch (fruit) {
case "apple" -> {
"This is an apple.";
}
case "banana" -> {
"This is a banana.";
}
case "orange" -> {
"This is an orange.";
}
default -> {
"Unknown fruit.";
}
};
System.out.println(message);
特点:
- 用对象映射(JavaScript)或表达式(Java 等)来代替传统的
switch
语句。 - 更加简洁,易于阅读。
- 避免了
break
和fall-through
问题。
两种写法的比较
特点 | 经典写法 | 简洁写法 |
---|---|---|
适用场景 | 流程控制复杂的情况 | 简单条件匹配 |
可读性 | 需要注意 break 和缩进 | 更加简洁和易读 |
支持的语言 | 几乎所有支持 switch 的语言 | 支持现代语言和语法的环境 |
特定用途:多个 case
共享逻辑
可以让多个 case
共用同一段代码:
(以C语言为例)
#include <stdio.h>
int main() {
int num = 2;
switch (num) {
case 1:
case 2:
case 3:
printf("Number is between 1 and 3\n");
break;
default:
printf("Number is not between 1 and 3\n");
break;
}
return 0;
}
输出:
如果 num = 2
,则输出:
Number is between 1 and 3
(以Java为例)
public class SelectDay{
public static void main(string[]args){
/*需求:键盘录入星期数,输出工作日、休息日。(1-5)工作日,(6-7)休息日。*/
//分析:
//1.键盘录入星期数
Scanner sc =new scanner(System.in);
System.out.println("请录入一个整数表示星期");
int week = sc.nextInt();
//2.利用switch语句来进行选择
switch(week){
case 1,2,3,4,5 -> System.out.println("工作日");
case 6,7 -> System.out.println("休息日");
default -> System.out.println("没有这个星期");
}
}
}