switch中case后可以是表达式吗_自学C++基础教程【流程控制语句】(switch语句 )...

99e1b8d663f6e858b9996a5fca993358.png

switch语句:又被称之为 分支选择语句,它提供了一种更方便的方法来实现深层嵌套的if、else逻辑:

switch语句先计算表达式的值,并逐个与其后的常量表达式的值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句。如果表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

185c804d470fcb623f4ee1b2b137e418.png

使用switch语句时还应注意以下4点:

①在case后的各常量表达式的值不能相同,否则会出现错误。

②在case后,允许有多个语句,可以不用{}括起来。

3.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

④default子句可以省略不用。

在代码编辑器中输入以下代码,编辑查看结果:

#include <iostream>

using namespace std;

void main()

{

int iDate;

cout<<"请输入个数字:"<<endl;

cin>>iDate;

switch (iDate)

{

case 1:

cout<<"周一"<<endl;

case 2:

cout<<"周二"<<endl;

case 3:

cout<<"周三"<<endl;

case 4:

cout<<"周四"<<endl;

case 5:

cout<<"周五"<<endl;

case 6:

cout<<"周六"<<endl;

case 7:

cout<<"周日"<<endl;

default:

cout<<"抱歉,地球没这天"<<endl;

}

system("pause");

}

编译以上的代码可以发现:当我们输入 1 时 , 结果如下:

6f8ab15bf0604c53dc03afa5028a9afa.png

原因:代码中“case 1:”判断成立后,该case并没有与break相对应,导致下面的所有的case都能够被判定为成立。

解决方法: 每个case块的最后都要有一个break与之相对应,default后不需要对应break

正确规范的写法如下:

#include <iostream>

using namespace std;

void main()

{

int iDate;

cout<<"请输入个数字:"<<endl;

cin>>iDate;

switch (iDate)

{

case 1:

cout<<"周一n"<<endl;

break;

case 2:

cout<<"周二n"<<endl;

break;

case 3:

cout<<"周三n"<<endl;

break;

正确规范的写法如下:

#include <iostream>

using namespace std;

void main()

{

int iDate;

cout<<"请输入个数字:"<<endl;

cin>>iDate;

switch (iDate)

{

case 1:

cout<<"周一n"<<endl;

break;

case 2:

cout<<"周二n"<<endl;

break;

case 3:

cout<<"周三n"<<endl;

break;

case 4:

cout<<"周四n"<<endl;

break;

case 5:

cout<<"周五n"<<endl;

break;

case 6:

cout<<"周六n"<<endl;

break;

case 7:

cout<<"周日n"<<endl;

break;

default:

cout<<"抱歉,地球没这天n"<<endl;

break;

}

system("pause");

}

自学C/C++资料链接:https://pan.baidu.com/s/1N4vZYeRPA4y2P42rP_t_JQ

提取码:ktb7

学习从来都不是一个人的事,如果你感觉小编的这篇文章对你有帮助的话,可以关注小编首页和小编来一起学习C/C++语言,小编会持续更新后续的内容哦!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值