积木类厂家
免费服务热线

Free service

hotline

010-00000000
积木类厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

C语言switch语句-(XINWEN)

发布时间:2021-10-10 08:31:04 阅读: 来源:积木类厂家

在有多个选择分支条件的情况下,用if 语句难免会繁琐且效率不高,此时便是switch语言的用武之地。 int i=1; switch(i){ case 0: printf(0); case 1: printf(1);

在有多个选择分支条件的情况下,用if 语句难免会繁琐且效率不高,此时便是switch语言的用武之地。

int i=1;

switch(i)

{

case 0:

printf("0");

case 1:

printf("1");

case 2:

printf("2");

default:

printf("default");

}

有些人会认为运行的结果是 2, 但是实际情况是 12default.

这也是初学者常犯的错误。按照常理,switch是选择分支,即满足那个case 执行那个case 块的语句,但是C语言中的switch有它的个性。来看看MSDN 的定义。

You can use the break statement to end processing of a particular case within the switch statement and to branch to the end of the switch statement. Without break,the program continues to the next case, executing the statements until a break or the end of the statement is reached. In some situations, this continuation may be desirable。

意思是,用break 语句 终止 当前的case ,直接到达switch 的末尾,执行完当前case 若有break则跳出switch。

如果没有break, 程序继续流向下一个case ,直到遇到break,或者 到达了switch末尾。

所以如果没有break语句,找到匹配条件的case 后,会从这里继续执行下面的case 直到最后一个case 或default。

明白了这个我们在上面的代码应该这样写。

int i=1;

switch(i)

{

case 0:

printf("0");

break;

case 1:

printf("1");

break;

case 2:

printf("2");

break;

default:

printf("default");

break;

}

这样就会输出 1;

一定要养成良好的习惯,给每一个case 加上break,以免造成疏忽的错误。

但是C语言的这种switch 特性也有它的优点。

比如设置每一个月的天数 Days 可以这样用switch

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12 :

Days=31;

break;

case 2:

//根据是否是闰年判断。

break;

case 4:

case 6:

case 9:

case 11:

Days=30;

break;

default: break;

}

这样便不用给每个case 都写语句了,case 1 3 5 7 为空,会自动到下一个CASE ,知道case 12 ,执行完跳出。

关于 defaut的位置。

这个问题相信有一大部分人没有考虑过,因为常见的程序中default 都在最后,这要造成了一些人认为default 在最后。

MSDN 的说法:

方井模具江苏方井钢模具电力井模具市场价格

清远违禁品安检门华盾违禁品探测门的用途

单次性注浆管零售天门施工缝预埋注浆管厂家

东莞石排废线废料回收

电力工程CPVC电力管运城销售

盘锦市政工程HDPE打孔管厂家定做

开封MPP管大弯头经济效益明显

汉中MPP塑钢复合管安装需要什么环境&

施工图苏州玻璃钢电力管耐高温性能好