Java 算术运算符

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);

  }
}

该程序的输出如下: