Java 中解释的算术和赋值运算符

算术运算符允许您在编程中执行代数算术。也就是说,它们使您能够对数字进行加、减、除和乘。

本文还将介绍赋值运算符。这些使您能够为变量赋予(分配)某个值。

本教程不仅适用于 Java 程序员。许多其他编程语言(如 C 和 Python)使用这些相同的运算符。因此,您可以轻松地转移和应用您在此处获得的知识。

算术运算符

Java 中有 5 个算术运算符——下表总结了它们。

操作员姓名 象征 示例表达式
添加 + x+3
减法 —— y-8
乘法 * x*y
分配 / ×/2
% y%3

符号( +/ )应该看起来很熟悉。那是因为它们与代数中通常使用的相同。

请务必注意,除法运算符 ( / ) 在这里指的是整数除法。也就是说, 19/5将评估为3 。任何由此计算产生的小数部分都会被截断。

相关: Java 中的构造函数是什么以及如何使用它?

您还应该注意到 Java 乘法运算符是星号 ( * ) 而不是通常的乘法符号 ( × )。

为了获得两个整数的模数,Java 使用%符号。表中给出的示例类似于代数表达式: y mod 3%运算符给出y除以3后的余数。也就是说, 19%5将评估为4

使用括号对子表达式进行分组是一种很好的做法。这简化了可读性并有助于避免逻辑和语法错误。

 ( 4*y+(z/3)) // example

当一个表达式中有多个算术运算符时,Java 使用运算符优先级规则来确定首先计算哪些子表达式。

下表对运算符优先级进行了分类。

优先级 操作员 描述
1 *
/
%
乘法、除法和取模具有相同的优先级。如果使用了多个这种类型的运算符,则从左到右计算它们。
2 +
——
加法和减法具有相同的优先级。如果使用了多个这种类型的运算符,则从左到右计算它们。
3 = 该运算符最后计算。

运算符 ( * , / , % ) 具有最高优先级,然后是 ( + , ) 最后是 ( = )。运算符( */% )和( + )都从左到右关联。这只是意味着他们的评估从最左边的运算符开始。

第三个运算符 ( = ) 从右到左关联。所以如果有x=3 ,这意味着 3 被分配给x ,而不是x被分配给 3 。

赋值运算符

赋值运算符 ( = ) 为变量赋值。

 y = y+7;

上面的表达式将7添加到y ,然后将最终结果分配给y 。如果您不熟悉编程,这个表达式可能看起来有点奇怪。这不应该打扰您,因为编译器会理解您要做什么。

复合赋值

您可以通过使用复合赋值运算符来简化表示赋值的方式。

在前面的示例中,我们可以简单地编写:

 y+=7;

请参阅下表,了解如何使用复合赋值运算符。

复合运算符 示例表达式 展开形式
+= x+=2 x=x+2
-= y -=6 y=y-6
*= z *=7 z=z*7
/= /=4 a=a/4
%= %=9 b= b%9

自增和自减运算符

如果你有复合赋值+=1 ,你可以简单地把它写成++ 。这被称为“增量运算符”。同样,递减运算符是

相关:如何在 Java 中编写 for 循环

在操作数之前使用时,递增和递减运算符称为“前缀运算符”。当在操作数之后使用时,它们被称为“后缀运算符”。

带前缀,被操作的变量先修改后使用,带后缀,使用修改前的初始值。

 y++; //postfix, most preferred form by many programmers
++y; // prefix

通常,后缀和前缀运算符都会产生相同的答案。只有在处理大型表达式时,答案才会改变。

让操作员为您工作

需要注意的是,递增和递减运算符仅作用于变量(例如x++ )而不是直接值(但不是5++ )。与之前的运算符不同,在使用增量和减量运算符时也不应该留下任何空格。这样做会导致编译时错误。

在可能的情况下始终使用括号对表达式进行逻辑分组。这将避免不必要的逻辑错误。

有了这些运算符,了解如何在 Java 中使用访问修饰符将是小菜一碟。