c语言里面的switch支持那个数是浮点数吗?
试了下不行,为什么啊?
switch(表达式){
case 整数1: 语句1;
case 整数2: 语句2;
...
case 整数n: 语句n;
default: 语句n + 1;
}
对于 switch case 语句的执行过程,如下:
1)首先,计算 表达式 的值,假设为 $x$;
2)然后,从第一个 case 开始,比较 $x$ 和 整数1 的值,如果相等,就执行冒号后面的所有语句,也就是从 语句1 一直执行到 语句n + 1,而不管后面的 case 是否匹配成功(这是平时开发的易错点,需要特别注意)。
3)如果 $x$ 和 整数1 不相等,就跳过冒号后面的 语句1,继续比较第二个 case、第三个 case……,一旦发现和某个 整数 相等了,就会执行后面所有的语句。假设 $x$ 和 整数6 相等,那么就会从 语句6 一直执行到 语句n + 1。
4)如果直到最后一个 整数n 都没有找到相等的值,那么就执行 default 后的 语句n + 1。