18 控制结构之switch语句

C++完整教程

在上一篇中,我们讨论了if条件语句,学习了如何根据条件执行不同的代码块。今天,我们将介绍switch语句,这是C++中一种用于多条件判断的控制结构。switch语句可以使代码更加清晰和易读,尤其是在需要比较多个常量值时。

switch语句的基本语法

switch语句的基本结构如下:

1
2
3
4
5
6
7
8
9
10
11
switch (expression) {
case constant1:
// 当 expression 等于 constant1 时执行的代码
break;
case constant2:
// 当 expression 等于 constant2 时执行的代码
break;
// 可以有任意数量的 case
default:
// 当 expression 不等于任何 case 时执行的代码
}

关键要素

  • 表达式: switch的表达式通常是整数类型(intchar等),它的值将与每个case的常量进行比较。
  • case: 每个case后面跟随一个常量值和要执行的代码块。
  • break: break语句用于结束switch语句,防止继续执行后续的case
  • default: 可选的default语句在没有任何case匹配时执行。

使用示例

让我们来看一个简单的示例,假设我们根据星期几的数字(1到7)输出相应的星期名称:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
using namespace std;

int main() {
int day;
cout << "请输入星期几的数字 (1-7): ";
cin >> day;

switch (day) {
case 1:
cout << "星期一" << endl;
break;
case 2:
cout << "星期二" << endl;
break;
case 3:
cout << "星期三" << endl;
break;
case 4:
cout << "星期四" << endl;
break;
case 5:
cout << "星期五" << endl;
break;
case 6:
cout << "星期六" << endl;
break;
case 7:
cout << "星期日" << endl;
break;
default:
cout << "无效的输入,请输入 1 到 7 之间的数字。" << endl;
break;
}

return 0;
}

程序解读

在这个例子中,我们首先提示用户输入一个数字,表示星期几。然后,switch语句检查这个数字:

  • 如果输入的数字是1,程序输出“星期一”。
  • 如果输入的数字是2,程序输出“星期二”,以此类推。
  • 如果输入的数字不是1到7之间的值,则执行default部分,输出提示信息。

注意事项

  1. 不必须包含break: 如果忘记在某个case后面添加break,将会导致“fall-through”现象,程序会继续执行后面的case代码,直到遇到breakswitch结束。

  2. 支持的类型: C++的switch语句支持intchar,和其它整型(如enum)。不支持浮点数和字符串。

  3. 多个case: 可以将多个case合并在一起,如果它们需要执行相同的代码。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch (day) {
case 1:
case 2:
case 3:
cout << "工作日" << endl;
break;
case 6:
case 7:
cout << "周末" << endl;
break;
default:
cout << "无效的输入,请输入 1 到 7 之间的数字。" << endl;
break;
}

在这个修改后的例子中,输入123时,都会输出“工作日”。

总结

今天我们介绍了switch语句以及如何在C++中使用它来简化多条件判断。通过简单易懂的案例,我们可以看到switch如何提高了代码的可读性和维护性。下一篇中,我们将重点讨论控制结构中的循环语句。本篇中所讲解的内容将为你理解更复杂的控制结构打下良好的基础。期待在下篇中与大家再次见面!

18 控制结构之switch语句

https://zglg.work/c-plusplus-zero/18/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-24

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论