我一直都知道如果语句必须具有布尔式表达式。
但是我看到了这个
if(x > y / z){
System.out.println("That is Correct ") ;
}
不是x>y
布尔表达和/z
数学操作员吗?!
这是如何运作的 。知道x,y和z是类型int
是 x > (y / z)
。表达式y / z
返回一个与x
进行比较的数字。
操作员优先表解释了为什么即使没有圆括号也可以工作。
┌────────────────┬───────────────────────────────┐
│ Operators │ Precedence ↓ │
├────────────────┼───────────────────────────────┤
│ multiplicative │ * / % │
│ relational │ < > <= >= instanceof │
└────────────────┴───────────────────────────────┘
一个简单的示例
System.out.println((10 == 20 / 2) ? "correct" : "incorrect");
打印
正确
它只是归结为操作顺序。整数部门优先于关系比较。它等于
if(x > (y / z))
您可以在此处了解有关操作员优先级的更多信息。
您在该链接的表中可以看到,关系运算符的优先级为9,而数学运算符的优先级为12,因此他们首先执行,因为他们的优先级较高。
根据BODMAS规则---> Division首先来自乘法。在Java中,/的优先级高于 * *除法首先发生于乘法。