1、switch(e){} e能不能是float型的,为什么?
不能是float, 可以是int,或者可转换成整型的字符型、布尔型、枚举型也可以。语法是这样设计,否则会switch expression not integral,报错的!
原因:switch的判断条件只能是等于,所以对于数据类型的精度要求比较高。字符型、布尔型、枚举型都可以转换成整型进行判断,是因为整形在相等不相等上有很大的确定性,而float和double表示的小数,毕竟精度都是有限的,超过限度以后的等于和不等于计算机就不好判定,故不能用。
不能是float, 可以是int,或者可转换成整型的字符型、布尔型、枚举型也可以。语法是这样设计,否则会switch expression not integral,报错的!
原因:switch的判断条件只能是等于,所以对于数据类型的精度要求比较高。字符型、布尔型、枚举型都可以转换成整型进行判断,是因为整形在相等不相等上有很大的确定性,而float和double表示的小数,毕竟精度都是有限的,超过限度以后的等于和不等于计算机就不好判定,故不能用。