Java Assignment Operators with Examples

2025年5月7日 | 阅读 5 分钟

每个编程语言的基本构建块都是运算符。此外,Java 提供了种类繁多的运算符,可用于算术、关系、逻辑和其他计算与任务。它们根据它们提供的功能进行分类。

赋值运算符

可以使用这些运算符为变量赋值。变量是赋值运算符的左操作数,而值是其右操作数。右侧的值必须与左侧的运算数具有相同的数据类型。如果数据类型不匹配,编译器将生成错误。因此,运算符右侧提供的值被分配给左侧的变量,这表明了赋值运算符的右到左的结合性。因此,右侧的值必须在使用前声明,或者它应该是一个常量。通常,赋值运算符的外观如下:

语法

Java 赋值运算符的类型

通常有两种类型的赋值运算符。它们是:

  1. 简单赋值运算符
  2. 复合赋值运算符

简单赋值运算符

当使用 "=" 符号时,运算数在左侧,值在简单赋值运算符的右侧。右侧的值必须与左侧定义的值属于同一数据类型。

复合赋值运算符

当 = 运算符与 +,-,*, 和 / 运算符一起使用时,也会使用复合运算符。

不同的赋值运算符如下:

1. (=) 运算符

将右侧的值分配给左侧的变量,这是最直接的赋值运算符。赋值运算符的基本意义和操作如下:

语法

示例

文件名

输出

 
The number assigned is: 100
The name assigned is: John Williams   

2. (+=) 运算符

"+" 和 "=" 运算符结合形成此运算符。它通过将右侧的值应用于左侧变量的当前值,然后将结果分配给左侧的运算数来工作。

语法

示例

文件名: IncrementOperator.java

输出

 
The number1 is 10
The number2 is 10
The number1 is 20   

注意:在Java 中,类型转换是使用复合赋值运算符隐式完成的。让我们看一个 int 变量 x 的值为 5 的情况。这可以表示为 (int x = 10;)

有两种方法可以给整数变量 x 添加 double 值 1.23 并打印其值:

方法 1

x = x + 1.23

当使用第一种方法时,会出现一条运行时错误,消息为“不兼容的类型:可能发生从 double 到 int 的有损转换”。原因是 int 和 double 相加会产生 double 值。由于可能导致精度损失,将此 double 值重新分配给 int 变量 x 需要显式类型转换。在没有显式转换的情况下,编译器会引发错误。

方法 2

x += 1.23

方法 2 的输出将打印值 2,该方法将无错误地运行。从 double 到 int 的隐式类型转换,也称为自动缩小原始转换,通过复合赋值运算符 += 进行。如果加法的结果被显式转换为 int,它等同于 x = (int) (x + 1.23)。在截断 double 值的小数部分后,x 被赋予结果 int 值。

建议使用方法 2 (x += 1.23) 以获得所需的输出并防止运行时错误。

我们可能会假设它们都相等,就像上面的例子一样。但是,方法 2 将无错误地运行并显示 9 作为输出,而方法 1 将抛出运行时错误,指出“不兼容的类型:可能发生从 double 到 int 的有损转换”。

3. (-=) 运算符

此运算符是 "-" 和 "=" 运算符的组合。它通过将右侧变量的值从左侧变量的值中减去来工作。然后将结果分配给左侧的运算数。

语法

示例

文件名: DecrementOperator.java

输出

 
The number1 is 20
The number2 is 10
The number1 is 10   

4. (*=) 运算符

"\*" 和 "=" 运算符结合形成此运算符。其工作原理是将左侧变量的当前值与右侧的值相乘,并将结果分配给左侧的运算数。

语法

示例

文件名: MultiplierOperator.java

输出

 
The number1 is 20
The number2 is 10
The number1 is 200   

5. (/=) 运算符

"/" 和 "=" 运算符结合形成此运算符。其工作原理是将左侧变量的当前值除以右侧的值,并将商分配给左侧的运算数。

语法

示例

文件名: DivisionOperator.java

输出

 
The number1 is 20
The number2 is 10
The number1 is 2   

6. (%=) 运算符

"%" 和 "=" 运算符结合形成此运算符。该过程的工作原理是将左侧变量的当前值除以右侧的值,并将余数分配给左侧的运算数。

语法

示例

文件名: ModuloOperator.java

输出

 
The number1 is 20
The number2 is 10
The number1 is 0   

下一主题Java 匿名代理