如果该表达式的含义 if(x > y / z)



我一直都知道如果语句必须具有布尔式表达式。
但是我看到了这个

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中,/的优先级高于 * *除法首先发生于乘法。

最新更新