Java教程 - Java算术运算符
在数学表达式中使用算术运算符。
所有算术运算符
下表列出了算术运算符:
运算符 | 结果 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 余数 |
++ | 自增 |
+= | 加法分配 |
-= | 减法分配 |
*= | 乘法分配 |
/= | 除法分配 |
%= | 模量分配 |
-- | 自减 |
算术运算符的操作数必须是数字类型。您不能在 boolean
类型上使用算术运算符,但可以在 char
类型上使用它们。
基本算术运算是加法,减法,乘法和除法。他们的行为正如你所期望的。减运算符也有一个一元形式,它取消它的单个操作数。
下面的快速演示显示了如何在Java中进行简单的计算基本算术运算符。
public class Main { public static void main(String args[]) { System.out.println("Integer Arithmetic"); int a = 1 + 1; int b = a * 3; int c = b / 4; int d = c - a; int e = -d; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("d = " + d); System.out.println("e = " + e); int x = 42; System.out.println("x mod 10 = " + x % 10); double y = 42.25; System.out.println("y mod 10 = " + y % 10); } }
运行此程序时,将看到以下输出:
模运算符%
返回除法运算的余数。模运算符可以应用于浮点类型以及整数类型。
Java复合分配操作符
语句如下
a = a + 4;
可以重写为
a += 4;
两个语句执行相同的操作:它们将 a
的值增加4。
任何形式的声明
var = var op expression;
可以重写为
var op= expression;
这里是一个示例程序,显示了几个 op=
操作符赋值:
public class Main { public static void main(String args[]) { int a = 1; int b = 2; int c = 3; a += 1; b *= 2; c += a * b; c %= 3; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); } }
此程序的输出如下所示:
Java增量和减量运算符
++
和 -
是Java的递增和递减运算符。增量运算符 ++
会将其操作数增加1。递减运算符 -
将其操作数减1。
增量和减量运算符之间的不同:
例如,这个语句:
x = x + 1;
可以这样通过使用增量运算符重写:
x++;
这句话:
x = x - 1;
相当于
x--;
递增和递减运算符是唯一的,因为它们可以以后缀形式和前缀形式出现。在后缀形式中,它们遵循操作数,例如 i++
。在前缀形式中,它们在操作数之前,例如, - i
。
当增量和/或减量运算符是部分时,这两种形式之间的差异出现的较大表达式。在前缀形式中,操作数在表达式中使用值之前递增或递减。在后缀形式中,在表达式中使用该值,然后修改操作数。
下表总结了前后递增和递减操作之间的差异:
x的初始值 | 表达 | y的最终值 | x的最终值 |
---|---|---|---|
5 | y = x ++ | 5 | 6 |
5 | y = ++ x | 6 | 6 |
5 | y = x-- | 5 | 4 |
5 | y = --x | 4 | 4 |
例如:
x = 42; y = ++x;
y
设置为43,因为增量在x分配给y之前发生。 因此,线
y = ++x;
是相当于这两个语句:
x = x + 1; y = x;
然而,当这样写时,
x = 42; y = x++;
在执行增量运算符之前获取x的值,因此值的y为42。
在这两种情况下,x设置为43。线
y = x++;
是相当于这两个语句:
y = x; x = x + 1;
以下程序演示了增量运算符。
public class Main { public static void main(String args[]) { int a = 1; int b = 2; int c = ++b; int d = a++; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("d = " + d); } }
该程序的输出如下: