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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flyidea 中级黑马   /  2014-7-26 22:22  /  1287 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如在if语句中if(1<=a<=9)这是错误的,非得用if(a>=1&&a<=9)为什么不支持前者?简便多了啊。

6 个回复

倒序浏览
你仔细看看java的预算符吧,前者不符合java的运算逻辑。后者将2个条件用&&(与)连接起来了
回复 使用道具 举报
两个条件同时满足就必须用&&来连接,不能用连续的符号,这是语法规则。
回复 使用道具 举报
这是编java的人定义的,没啥解释吧。。。语法。。
回复 使用道具 举报
1<=a<=9, 赋值运算符,当a>=1时,是赋值给a,赋值以后,a和9的类型类型,此时如果继续赋值会出现报错。出现2次转换类型,所以报错
回复 使用道具 举报
同意楼上正解
回复 使用道具 举报
icris 中级黑马 2014-7-27 00:27:46
7#
本帖最后由 icris 于 2014-7-27 00:29 编辑

1<=a<=9
首先1<=a得到一个boolean型,记为b,则原式等效于b<=9。
事实上观察报错就能看出来:The operator <= is undefined for the argument type(s) boolean, int
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马