💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Java 中的算术运算符 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/java-arithmetic-operator/](https://javabeginnerstutorial.com/core-java-tutorial/java-arithmetic-operator/) 在本节中,我们将学习**算术**,**运算符**,**优先级**和**运算符关联**。 ## 运算符优先级 *优先级*决定在同一计算中存在多个运算符的情况下,首先求值哪个运算符。 ## 运算符优先级表 | 运算符 | 优先级(从高到低) | | --- | --- | | 后缀 | `expr++ expr--` | | 一元 | `++expr --expr +expr –expr ~ !` | | 乘法 | `* / %` | | 加法 | `+ –` | | 移位 | `<< >> >>>` | | 关系 | `< > <= >= instanceof` | | 相等 | `== !=` | | 按位与 |`&` | | 按位异或 | `^` | | 按位或 | <code>&#124;</code> | | 逻辑与 | `&&` | | 逻辑或 | <code>&#124;&#124;</code> | | 三元 | `?:` | | 赋值 | <code>= += -= *= /= %= &= ^= &#124;= <<= >>= >>>=</code> | ## 优先级示例 ```java /* * Here we will see the effect of precedence in operators life */ class OperatorPrecedenceExample { public static void main(String args[]) { int i = 40; int j = 80; int k = 40; int l = i + j / k; /* * In above calculation we are not using any bracket. So which operator * will be evaluated first is decided by Precedence. As precedence of * divison(/) is higher then plus(+) as per above table so divison will * be evaluated first and then plus. * * So the output will be 42. */ System.out.println("value of L :" + l); int m = (i + j) / k; /* * In above calculation brackets are used so precedence will not come in * picture and plus(+) will be evaluated first and then divison()/. So * output will be 3 */ System.out.println("Value of M:" + m); } } ``` ## 运算符关联性 如果两个运算符在计算中具有相同的优先级,则将使用运算符的**关联性**来决定首先执行哪个运算符。 ## 关联性示例 ```java package jbt.bean; /* * Here we will see the effect of precedence in operators life */ public class OperatorAssociativityExample { public static void main(String args[]) { int i = 40; int j = 80; int k = 40; int l = i / k * 2 + j; /* * In above calculation we are not using any bracket. And there are two * operator of same precedence(divion and multiplication) so which * operator(/ or *) will be evaluated first is decided by association. * Associativity of * & / is left to right. So divison will be evaluated * first then multiplication. * * So the output will be 82. */ System.out.println("value of L :" + l); int m = i / (k * 2) + j; /* * In above calculation brackets are used so associativity will not come * in picture and multiply(*) will be evaluated first and then * divison()/. So output will be 80 */ System.out.println("Value of M:" + m); } } ``` ## Java 中的运算符 让我们分别讨论每个运算符。 赋值(`=`)和算术运算符(`+, -, *, /`)的工作方式与其他编程语言相同,因此在此不再赘述。 `/`和`*`运算符的优先级高于加法(`+`)或减法(`-`)或取模(`%`)