C++ switch case的用法(附带实例)
当分支情况较多时,if 判断语句的可读性较差,使用不当还会产生表达式错误。为解决多分支问题,C++ 中提供了 switch 语句。
switch 语句的一般形式如下:
【实例 1】成绩等级划分。某校成绩等级划分如下:
根据控制台输入的字符 A、B、C、D,输出对应的成绩等级。如果输入的是其他字符,输出“input error”。本例使用 switch 语句实现,具体代码如下:
注意在 switch 语句中,每个 case 分支都使用了 break 语句,作用是匹配成功后跳出整个 switch 判断。如果不使用 break 语句会出现什么问题呢?事实上,由于无法跳出,自匹配成功的 case 语句起,后面的每条 case 语句都会被执行一次,且不再进行判断。
【实例 2】今天是星期几。根据输入的 1~7 中的任意整型数,输出对应的英文星期名称。例如,输入数字 1,输出“Monday”;输入数字 2,输出“Tuesday”……如果输入的是其他字符,就输出“input error”。使用 switch 语句实现,但各 case 分支中不使用 break 语句。具体代码如下:
switch 语句的一般形式如下:
switch(表达式)
{
case 常量表达式1:
语句块1;
case 常量表达式2:
语句块2;
...
case 常量表达式n:
语句块n;
default:
默认语句块;
}
其中,“表达式”是一个算术表达式,值是一个整型数或字符。用该值逐一和 case 后常量表达式的值进行比较,如果一致,就执行其后的语句块,并通过 break 关键字跳出整个 switch 语句;如果无法匹配成功,就执行 default 后的语句块。default 分句可以省略,这时 case 语句即便全部匹配不成功,也不再进行任何操作。注意,switch 括号内的表达式不能是浮点数,否则会因为精度不准确而产生错误。
【实例 1】成绩等级划分。某校成绩等级划分如下:
- A 为 very good;
- B 为 good;
- C 为 normal;
- D 为 failure。
根据控制台输入的字符 A、B、C、D,输出对应的成绩等级。如果输入的是其他字符,输出“input error”。本例使用 switch 语句实现,具体代码如下:
#include <iostream>
using namespace std;
int main()
{
char input; // 输入一个字符,表示成绩等级
cin >> input;
switch (input) // switch 语句
{
case 'A': // 字符为 A
cout << "very good" << endl;
break;
case 'B': // 字符为 B
cout << "good" << endl;
break;
case 'C': // 字符为 C
cout << "normal" << endl;
break;
case 'D': // 字符为 D
cout << "failure" << endl;
break;
default: // 字符为 A、B、C、D 外的其他字符
cout << "input error" << endl;
}
}
程序需要用户输入一个字符,用户输入字符 A,输出“very good”;输入字符 B,输出“good”;输入字符 C,输出“normal”;输入字符 D,输出“failure”;输入其他字符,输出“input error”。注意在 switch 语句中,每个 case 分支都使用了 break 语句,作用是匹配成功后跳出整个 switch 判断。如果不使用 break 语句会出现什么问题呢?事实上,由于无法跳出,自匹配成功的 case 语句起,后面的每条 case 语句都会被执行一次,且不再进行判断。
【实例 2】今天是星期几。根据输入的 1~7 中的任意整型数,输出对应的英文星期名称。例如,输入数字 1,输出“Monday”;输入数字 2,输出“Tuesday”……如果输入的是其他字符,就输出“input error”。使用 switch 语句实现,但各 case 分支中不使用 break 语句。具体代码如下:
#include <iostream>
using namespace std;
int main()
{
int input; // 输入一个整型数
cin >> input; // switch 语句
switch(input)
{
case 1: // 数字为 1
cout << "Monday" << endl;
break;
case 2: // 数字为 2
cout << "Tuesday" << endl;
break;
case 3: // 数字为 3
cout << "Wednesday" << endl;
break;
case 4: // 数字为 4
cout << "Thursday" << endl;
break;
case 5: // 数字为 5
cout << "Friday" << endl;
break;
case 6: // 数字为 6
cout << "Saturday" << endl;
break;
case 7: // 数字为 7
cout << "Sunday" << endl;
break;
default: // 数字为 1~7 之外的其他数字
cout << "Input error" << endl;
}
}
输入 1 时,程序运行结果为:
1
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Input error
ICP备案:
公安联网备案: