日志7

switch语句

1. 基本概念

switch - case语句是C++中的一种多分支选择语句。它根据一个表达式的值来决定执行多个分支中的哪一个分支。这个表达式的值必须是整数类型(如int、char等)或者是可以自动转换为整数类型的枚举类型。

2. 语法结构

switch (表达式) {

case 常量表达式1:

语句序列1;

break;

case 常量表达式2:

语句序列2;

break;

// 可以有更多的case分支

default:

语句序列n;

break;

}

首先计算switch后面括号内的表达式的值。

然后将这个值与每个case后面的常量表达式的值进行比较。如果找到匹配的值(即表达式的值等于某个case后的常量表达式的值),就执行该case分支中的语句序列,直到遇到break语句或者switch语句块结束。

如果没有找到匹配的case,则执行default分支中的语句序列(如果有default分支的话)。default分支是可选的。

3. 例子:根据用户输入的数字来输出对应的星期几的名称:

#include <iostream>

using namespace std;

int main() {

int day;

cout << "请输入一个数字(1 - 7)代表星期几:";

cin >> day;

switch (day) {

case 1:

cout << "星期一";

break;

case 2:

cout << "星期二";

break;

case 3:

cout << "星期三";

break;

case 4:

cout << "星期四";

break;

case 5:

cout << "星期五";

break;

case 6:

cout << "星期六";

break;

case 7:

cout << "星期日";

break;

default:

cout << "输入错误";

break;

}

return 0;

}

在这个例子中,用户输入一个数字存储在day变量中。switch语句根据day的值来决定执行哪个分支。如果day的值为1,就执行case 1分支,输出“星期一”,然后遇到break语句跳出switch语句块。如果day的值不在1 - 7的范围内,就执行default分支,输出“输入错误”。

#include <iostream>

using namespace std;

int main(){

int n;

cin>>n;

switch(n){

case 1:cout<<"set meal 1"<<endl;

break;

case 2:cout<<"set meal 2"<<endl;

break;

case 3:cout<<"set meal 3"<<endl;

break;

case 4:cout<<"set meal 4"<<endl;

break;

case 5:cout<<"set meal 5"<<endl;

break;

case 6:cout<<"set meal 6"<<endl;

break;

case 7:cout<<"set meal 7"<<endl;

break;

case 8:cout<<"set meal 8"<<endl;

break;

case 9:cout<<"set meal 9"<<endl;

break;

case 10:cout<<"set meal 10"<<endl;

break;

default:cout<<"no set meal"<<endl;

}

return 0;

}

4. 注意事项

(1)case后面的常量表达式的值必须是唯一的,不能有两个case分支的常量表达式的值相同。

(2)如果没有break语句,程序在执行完一个case分支后会继续执行下一个case分支的语句,这可能会导致意外的结果。这种情况在某些特殊场景下可以利用,比如多个case分支执行相同的操作,但通常需要谨慎使用。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
面试尴尬现场
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务