为什么在java中出错:

时间:2013-12-05 23:04:29

标签: java if-statement boolean-expression

朋友您好我有一个问题要在java中定义id。 为什么这个定义是错误的:

if(0<=hours<24)

if(0<=hours&&hours<24)

是真的。

4 个答案:

答案 0 :(得分:5)

第一个解析为

if((0<=hours)<24)

或(例如,如果hours>= 0

if(true<24)

作为布尔值无效,不能小于int。

事实上,除了Python之外,没有其他语言允许这种语法。

答案 1 :(得分:1)

因为第一个不等式求值为布尔值。所以这就变成了,

if (true <= 24)

在Java中,没有定义布尔值和整数之间的比较。

答案 2 :(得分:1)

这是因为0<=hours的类型是boolean<运算符不适用于booleanint

答案 3 :(得分:1)

第一个在语法上是不正确的。如果要将变量与其他两个表达式进行比较,则应该有一个有效的运算符,如和(&amp;&amp;)。这就是为什么第二个是正确的。

if (0 <= hours && hours < 24)

这里你要说的是hours是否大于或等于0并且同时严格地小于24。