A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 大雄9293 中级黑马   /  2013-12-7 15:04  /  1149 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch语句中,小括号内的量为什么必须是整型?例如:switch(str)怎么不行呢

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1

查看全部评分

3 个回复

倒序浏览
switch的判断条件只能是等于,所以对于数据类型的精度要求比较高。字符型、布尔型、枚举型都可以转换成整型进行判断,是因为整形在相等不相等上有很大的确定性,而float和double表示的小数,毕竟精度都是有限的,超过限度以后的等于和不等于计算机就不好判定,故不能用。

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1

查看全部评分

回复 使用道具 举报
在JDK1.7中Switch 已经对string支持了{:soso_e113:}

评分

参与人数 1黑马币 +3 收起 理由
简★零度 + 3

查看全部评分

回复 使用道具 举报
因为Switch的每个case有入口地址,那如果是int型,就很好计算出每一个case的入口地址,就和你定义一个数组一样
int a[3];
a[1]...数组下标为什么不可以用float型呢,很明显那样查找地址非常不方便.
楼上说的对,JDK1.7中支持Sring。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马