C++中的switch case语句
引言
在C++编程中,我们经常遇到基于不同条件执行不同操作的需求。为了满足这种需求,C++提供了一种流程控制语句,即switch case语句。
switch case语句允许我们根据一个表达式的值来选择执行特定的代码块。它提供了一种比使用多个if-else语句更简洁和清晰的方式来处理多个条件的情况。
在本文中,我们将详细介绍C++中的switch case语句的语法、用法和一些注意事项。
switch case语句的语法和用法
switch case语句的基本语法如下所示:
switch (expression) {
case value1:
// 执行代码块1
break;
case value2:
// 执行代码块2
break;
case value3:
// 执行代码块3
break;
...
default:
// 默认情况下执行的代码
}
expression
为要进行匹配的表达式或值。-
case value1
、case value2
等是对expression
可能的值进行匹配。每个case
后面必须跟一个冒号:
。 -
当
expression
的值等于某个case
后面的值时,相应的代码块将被执行。 -
break
语句用来终止代码块的执行。如果不加break
语句,代码将会继续执行后面的case
,直到遇到break
或者switch
结束。 -
如果
expression
的值与所有case
后面的值都不匹配,则执行default
后面的代码块。
接下来,我们通过一些示例来更好地理解switch case语句的用法。
示例
示例1:输出星期几
#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 << "输入的数字无效" << endl;
}
return 0;
}
运行结果:
请输入一个数字(1-7): 5
周五
示例2:计算器
#include <iostream>
using namespace std;
int main() {
double num1, num2;
char op;
cout << "请输入两个数字: ";
cin >> num1 >> num2;
cout << "请输入一个操作符(+, -, *, /): ";
cin >> op;
switch (op) {
case '+':
cout << "结果: " << num1 + num2 << endl;
break;
case '-':
cout << "结果: " << num1 - num2 << endl;
break;
case '*':
cout << "结果: " << num1 * num2 << endl;
break;
case '/':
if (num2 != 0) {
cout << "结果: " << num1 / num2 << endl;
} else {
cout << "除数不能为0" << endl;
}
break;
default:
cout << "无效的操作符" << endl;
}
return 0;
}
运行结果:
请输入两个数字: 8.5 4.2
请输入一个操作符(+, -, *, /): *
结果: 35.7
示例3:判断月份天数
#include <iostream>
using namespace std;
int main() {
int month;
cout << "请输入一个月份(1-12): ";
cin >> month;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout << "该月份有31天" << endl;
break;
case 4:
case 6:
case 9:
case 11:
cout << "该月份有30天" << endl;
break;
case 2:
cout << "该月份有28或29天" << endl;
break;
default:
cout << "无效的月份" << endl;
}
return 0;
}
运行结果:
请输入一个月份(1-12): 2
该月份有28或29天
注意事项
下面是在使用switch case语句时需要注意的一些事项:
- 每个case后面必须加上一个冒号(:)。
-
expression
的值可以是整数、字符或枚举类型。 -
一个switch块可以包含多个case,但case的值必须唯一,且在同一个switch块中不得重复。
-
expression
的数据类型必须与case的值的数据类型相同。 -
break
语句用于终止代码块的执行,如果忘记加上break
将会导致case穿透,即匹配到一个case后,会执行该case及其后面所有case的代码块。 -
default语句是可选的,当
expression
的值都不匹配时,将执行default后面的代码块。 -
当执行完一个case的代码块后,程序会从switch块中的下一个语句开始执行,除非在case代码块中使用了
break
语句或者switch块执行结束。
结论
通过本文,我们详细了解了C++中switch case语句的语法、用法和注意事项。switch case语句是一个很有用的工具,可以让我们根据不同条件执行不同操作,从而增加程序的灵活性和可读性。
在实际开发中,我们可以利用switch case语句来处理一些多条件的场景,例如根据用户输入执行不同的操作、根据不同的条件执行不同的任务等。掌握了switch case语句的使用,可以更好地进行程序设计和开发。