switch

c语言语法灵活,程序常常自由度大,书写限制较少,但也有个别特例不那么完美,switch语句便是如此

switch (语句表达式0)

{

case 常量表达式1:  语句块1;break;

case 常量表达式2:  语句块2;break;

......

default:  语句块n;

}

有两个问题决定了switch的不灵活:

1. 语句表达式0限制严格,只能用布尔型,整型,字符型等基本数据类型;(原因是此处需要给一个明确定义毫无偏差的数值,而如浮点数之类的数据类型会产生误差,存在“不确定性”)

2. case标签必须为唯一的常量表达式,只能写如:case 1; 而不能写作 case a=1;限制严格;(此处默认a=1,为了防止繁琐的操作而加此处限制,略显画蛇添足,不太符合书写习惯)。

而现在,在硬件设备的完善下,case几乎完全可以被if-else语句替代,而两者从机器内部编译实现或者人的操作上都区别不大,因此break语句的多限制决定了它不方便使用,这大概也算是c语言的不足之处了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值