黑马程序员技术交流社区
标题:
if语句
[打印本页]
作者:
翟盼盼
时间:
2013-3-5 23:19
标题:
if语句
为什么在if语句中这样输入会报错?if(80<score<90)
作者:
黑马-杨鹏立
时间:
2013-3-5 23:22
if(80<score<90)这样输入少分号,他会自动匹配下一个分号,一般简单的一句语句是可以跟在后面if(80<score<90) int a=1;如果少了分号语句是不完整的。
作者:
郝滨
时间:
2013-3-5 23:26
(80<score<90) 要分开表示的(80 < score && score < 90)
原来的是先比较score与80 然后就直接得到1或者0 再与90比较
作者:
HM王琦
时间:
2013-3-5 23:27
应该写成if(score<90||score>80)
|| 是或的符号。
作者:
luxun1912
时间:
2013-3-5 23:29
应该写成if(score>80&&score>90),l逻辑表达式
作者:
张卫刚
时间:
2013-3-6 00:54
if(80<score<90)报错是因为,先判断80<score 为true或false, 然后再用结果比,假如结果是true, true<90,比较类型是boolean和int,java不允许这样写,所以报错了;你可以写成if(score>80 && score>90)
作者:
朱传波
时间:
2013-3-6 09:43
本帖最后由 朱传波 于 2013-3-6 09:45 编辑
作为if语句,后面括号里得出的必须是bool值,即 true 或者 false
如果你写成if(80<score<90)
计算机中不能一次性的进行比较
我们知道,两个<号的优先级是相同的,
于是,计算机便会按照从左向右的顺序进行比较
于是步骤如下:
if(80<score<90)----> if(true"或者false“<90)
但是这个时候,bool类型的值是无法与int类型的值进行比较的,便出现了报错
----> if(括号中出现错误)
所以,如果想达这种效果的话,必须把括号中的内容拆开
写成
if(80<score&&score<90)
作者:
李贤贤
时间:
2013-3-6 11:46
80<score<90 这个条件不成立,80和score的比较结果是bool类型,其结果不能和90作比较了;可以这样写,80<score||score<90这样条件就成立了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2