首页 > 编程知识 正文

c++switch case语句例子,c语言switch和case

时间:2023-05-06 17:14:18 阅读:115622 作者:4707

当分支比较少的时候我们使用if else语句解决,当分支比较多的时候,我们要使用switch case语句解决,针对分支的复杂性选择合适的程序解决。

过多的分支导致if else处理不方便,if else配对容易出错。 例如,输入整数,并输出与该整数对应的星期的英语书写。

#include stdio.hint main () { int a; printf(inputintegernumber: ); 扫描(' % d ',a ); if(a==1) printf(Monday(n ); }elseif(a==2) printf ) ) Tuesday(n ); }elseif(a==3) printf ) Wednesday(n ); }elseif(a==4) printf ) ) Thursday(n ); }elseif(a==5) printf ) Friday(n ); }elseif(a==6) printf ) Saturday(n ); }elseif(a==7) printf ) Sunday(n ); }else{printf(error(n ); }返回0; }执行结果:

inputintegernumber :3Wednesday在上述情况下,在实际开发中通常用switch语句代替。 请看下面的代码。

#include stdio.hint main () { int a; printf(inputintegernumber: ); 扫描(' % d ',a ); 交换机(a ) case1:printf(Monday(n ); 布雷克; case2:printf(Tuesday(n ); 布雷克; case3:printf(Wednesday(n ) ); 布雷克; case4:printf(Thursday(n ); 布雷克; case 5: printf (自由(n ); 布雷克; case 6:打印(Saturday (n ) ); 布雷克; case7:printf(Sunday(n ); 布雷克; d故障:打印(错误(n ); 布雷克; }返回0; }执行结果:

inputintegernumber :4Thursday http://www.Sina.com /

switch (式) { case整数值1:句1; case整数值2:句2; case整数值n:语句n; default:句n 1; }执行流程:

1 .首先计算“式”的值,设为m。

2 .从第一个case开始,比较“整数值1”和m,如果它们相等,则执行冒号之后的所有语句,即从“语句1”到“语句n 1”。 之后的case是否一致无关紧要。

3 .如果“整数值1”与m不相等,跳过冒号后的“语句1”,注意到第二个case、第三个case……等于某个整数值,则执行后面的所有语句。 假设m等于"整数值5 ",则从"语句5 "执行到"语句n 1 "。

4 .如果在最后一个“整数值n”之前找不到相等的值,请执行default之后的“语句n 1”。

请注意,如果与整数值成功匹配,则会执行分支及其后的所有分支的语句。 例如:

#include stdio.hint main () { int a; printf(inputintegernumber: ); 扫描(' % d ',a ); 交换机(a ) case1:printf(Monday(n ); case2:printf(Tuesday(n ); case3:printf(Wednesday(n ) ); case4:printf(Thursday(n ); case 5: printf (自由(n ); case 6:打印(Saturday (n ) ); case7:printf(Sunday(n ); d故障:打印(错误(n ); }返回0; }执行结果:

inputintegernumber :4thursdayfridaysaturdaysundayerror输入4,成功匹配第四个分支,因此将执行所有第四个和后续分支。 这显然不是我们想要的结果,只想执行第四个分支,跳过后面的其他分支。 为了实现这个目标,必须在每个分支中最后添加break; 语句。

switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句“弹出”是指遇到break时,switch中的语句(包括当前分支中的语句和其他分支中的语句)将不再执行。 也就是说,整个交换机运行结束,然后执行整个交换机后面的代码。

使用break更改上面的代码:

#include stdio.hint main () { int a; printf(inputintegernumber: ); 扫描(' % d ',a ); 交换机(a ) case1:printf(Monday(n ); 布雷克; case2:printf(Tuesday(n ); 布雷克; case3:printf(Wednesday(n ) ); 布雷克; case4:printf(Thursday(n ); 布雷克; case 5: printf (自由(n ); 布雷克; case 6:打印(Saturday (n ) ); 布雷克; case7:printf(Sunday(n ); 布雷克; d故障:打印(错误(n ); 布雷克; }返回0; }执行结果:

inputintegernumber :4Thursday http://www.Sina.com /

最后需要说明的两点是:

1 . case后面必须有整数或结果为整数的表达式,但不能包含变量。 请看以下示例:

case 10: printf (' . '; 布雷克; //正确的case 8 9: printf (' . '; 布雷克; //正确的case ' a ' : printf (. ); 布雷克; //正确,字符和整数可以相互转换case'a'19:printf(…); 布雷克; //正确,字符和整数可以相互转换case 9.5: printf (' . '; 布雷克; //错误,小数case a: printf (' . ' ); 布雷克; //错误,变量case a 10: printf ' . '; 布雷克; //错误,不需要包含变量2 . default。 如果没有默认值,则如果所有case都匹配失败,将不会执行任何操作。

心情好的话请夸奖我哦!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。