C++中使用 switch-case 进行条件处理
switch-case 让您能够将特定表达式与一系列常量进行比较,并根据表达式的值时执行不同的操作。在这种结构中,经常会使用 C++新增的关键字 switch、 case、 default 和 break。
switch-case 结构的语法如下:
switch(expression)
{
case LabelA:
DoSomething;
break;
case LabelB:
DoSomethingElse;
break;
// And so on...
default:
DoStuffWhenExpressionIsNotHandledAbove;
break;
}
上述代码计算 expression 的值,并将其与每个 case 标签进行比较。每个 case 标签都必须是常量,如果 expression 的值与 case 标签相等,就执行标签后面的代码。如果 expression 与 LabelA 不相等,将把 expression 与 LabelB 进行比较。如果它与 LabelB 相同,就执行 DoSomethingElse。将不断重复这个过程,直到遇到 break。这是您首次使用关键字 break,它导致程序退出当前代码块。 break 并非必不可少,但如果省略它,将不断与后面的标签进行比较,这并非您希望的。 default 也是可选的,它用于执行 expression 不与 switch-case 中的任何标签匹配时应执行的操作。
提示:
switch-case 结构非常适合与枚举量结合使用。
以下示例程序使用了 switch-case 结构,指出一个星期的各天是以哪颗星星命名的,也使用了枚举常量:
#include <iostream>
using namespace std;
int main()
{
enum DaysOfWeek
{
Sunday = 0,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
cout << "Find what days of the week are named after!" << endl;
cout << "Enter a number for a day (Sunday = 0): ";
int dayInput = Sunday; // Initialize to Sunday
cin >> dayInput;
switch(dayInput)
{
case Sunday:
cout << "Sunday was named after the Sun" << endl;
break;
case Monday:
cout << "Monday was named after the Moon" << endl;
break;
case Tuesday:
cout << "Tuesday was named after Mars" << endl;
break;
case Wednesday:
cout << "Wednesday was named after Mercury" << endl;
break;
case Thursday:
cout << "Thursday was named after Jupiter" << endl;
break;
case Friday:
cout << "Friday was named after Venus" << endl;
break;
case Saturday:
cout << "Saturday was named after Saturn" << endl;
break;
default:
cout << "Wrong input, execute again" << endl;
break;
}
return 0;
}
输出:
Find what days of the week are named after!
Enter a number for a day (Sunday = 0): 5
Friday was named after Venus
再次运行的输出:
Find what days of the week are named after!
Enter a number for a day (Sunday = 0): 9
Wrong input, execute again
分析:
第 22~55 行的 switch-case 结构根据用户输入的整数(存储在变量 dayInput 中)生成不同的输出。用户输入数字 5 时,应用程序将 switch 表达式( dayInput,其值为 5)与标签进行比较,并跳过前 4 个标签后面的代码,因为这些标签为 Sunday( 0) ~Thursday( 4),它们都与 5 不相等。到达标签 Friday 后,由于 switch 表达式的值( 5)与枚举量 Friday 相等,因此执行该标签后面的代码,并在到达第 46行的 break 后退出 swtich 结构。第二次运行时提供的值无效,因此到达 default 后执行它后面的代码,显示一条让用户再执行一次的消息。
这个程序使用的是 switch-case, switch-case 版本的结构化程度更高,可能非常适合不仅仅将一行文本显示在屏幕上的情形(在这种情形下,可将代码放在大括号内,组成语句块)。
该文章会更新,欢迎大家批评指正。文章来源:https://www.toymoban.com/news/detail-686678.html
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程文章来源地址https://www.toymoban.com/news/detail-686678.html
到了这里,关于C++中使用 switch-case 进行条件处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!