朋友您好我有一个问题要在java中定义id。 为什么这个定义是错误的:
if(0<=hours<24)
但
if(0<=hours&&hours<24)
是真的。
答案 0 :(得分:5)
第一个解析为
if((0<=hours)<24)
或(例如,如果hours
是>= 0
)
if(true<24)
作为布尔值无效,不能小于int。
事实上,除了Python之外,没有其他语言允许这种语法。
答案 1 :(得分:1)
因为第一个不等式求值为布尔值。所以这就变成了,
if (true <= 24)
在Java中,没有定义布尔值和整数之间的比较。
答案 2 :(得分:1)
这是因为0<=hours
的类型是boolean
而<
运算符不适用于boolean
和int
。
答案 3 :(得分:1)
第一个在语法上是不正确的。如果要将变量与其他两个表达式进行比较,则应该有一个有效的运算符,如和(&amp;&amp;)。这就是为什么第二个是正确的。
if (0 <= hours && hours < 24)
这里你要说的是hours
是否大于或等于0并且同时严格地小于24。