分享

C语言选择结构之 switch条件语句

 岁月之残痕 2017-03-27

switch条件语句

        switch 条件语句也是一种很常用的选择语句,和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。例如,在程序中使用数字1~7来表示星期一到星期天,如果想根据某个输入的数字来输出对应中文格式的星期值,可以通过下面的一段伪代码来描述:

//用于表示星期的数字

如果等于1,则输出星期一

如果等于2,则输出星期二

如果等于3,则输出星期三

如果等于4,则输出星期四

如果等于5,则输出星期五

如果等于6,则输出星期六

如果等于7,则输出星期天

如果不是1~7,则输出此数字为非法数字

对于上面一段伪代码的描述,大家可能会立刻想到用刚学过的 if…else  if…else语句来实现,但是由于判断条件比较多,实现起来代码过长,不便于阅读。这时就可以使用C语言中的switch语句来实现这种需求。在switch语句中switch关键字后面有一个表达式,case关键字后面有目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句。接下来通过一段伪代码来描述switch语句的基本语法格式,具体如下:

switch (表达式)

{

case 目标值1:

执行语句1

break;

case 目标值2:

执行语句2

break;

……

case 目标值n:

执行语句n

break;

default:

执行语句n+1

break;

}

在上面的语法格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,就会执行相应case后的语句,否则执行default后的语句。其中,switch语句中的break关键字的作用是跳出switch语句即可。

接下来通过一个案例来实现根据数字输出中文格式的星期的功能:

#include

int main()

{

int week = 5;

switch (week)

{

case 1:

printf('星期一');

break;

case 2:

printf('星期二');

break;

case 3:

printf('星期三');

break;

case 4:

printf('星期四');

break;

case 5:

printf('星期五');

break;

case 6:

printf('星期六');

break;

case 7:

printf('星期天');

break;

default:

printf('输入的数字不正确...');

break;

}

return 0;

}

运行结果如图所示:


例中,由于变量week的值为5,整个switch语句判断的结果满足case 5的条件,因此打印“星期五”。程序中的 default 语句用于处理和前面的case都不匹配的情况,将第5行代码替换为int week = 8,再次运行。


输出结果如图下所示:


        在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的话,则该执行语句只需书写一次即可,这是一种简写的方式。例如,使用数字1~7来表示星期一到星期天,当输入的数字为1、2、3、4、5时视为工作日,否则视为休息日,这时如果需要判断一周中的某一天是否为工作日,就可以采用switch语句的简写方式,具体如例所示:

#include

int main()

{

int week = 2;

switch (week)

{

case 1:

case 2:

case 3:

case 4:

case 5:

//当 week 满足值 1、2、3、4、5 中任意一个时,处理方式相同

printf('今天是工作日\n');

break;

case 6:

case 7:

//当 week 满足值 6、7 中任意一个时,处理方式相同

printf('今天是休息日\n');

break;

}

return 0;

}

运行结果如图所示:


当变量week的值为1、2、3、4、5 中任意一个值时,处理方式相同,都会打印“今天是工作日”。同理,当变量week值为6、7中任意一个值时,打印“今天是休息日”。



求关注,求转发,求支持!

想要学习的童鞋可以加群:564950050!

同时关注我们的兴趣部落:【C语言编程】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多