Skip to content

5.2 赋值运算符

赋值运算符的概念

赋值运算符用于将一个值赋给变量。Java 提供了多种赋值运算符,包括基本赋值运算符和复合赋值运算符。

赋值运算符列表

运算符名称描述示例等效于
=基本赋值将右侧的值赋给左侧的变量a = b-
+=加赋值将左侧变量与右侧值相加,然后将结果赋给左侧变量a += ba = a + b
-=减赋值将左侧变量与右侧值相减,然后将结果赋给左侧变量a -= ba = a - b
*=乘赋值将左侧变量与右侧值相乘,然后将结果赋给左侧变量a *= ba = a * b
/=除赋值将左侧变量与右侧值相除,然后将结果赋给左侧变量a /= ba = a / b
%=取模赋值将左侧变量与右侧值取模,然后将结果赋给左侧变量a %= ba = a % b

基本赋值运算符

基本赋值运算符 = 用于将右侧表达式的值赋给左侧的变量。

语法

java
变量名 = 表达式;

示例

java
public class BasicAssignmentExample {
    public static void main(String[] args) {
        // 基本赋值
        int a = 10;
        System.out.println("a = " + a); // 输出 10
        
        // 将一个变量的值赋给另一个变量
        int b = a;
        System.out.println("b = " + b); // 输出 10
        
        // 将表达式的值赋给变量
        int c = a + b;
        System.out.println("c = " + c); // 输出 20
        
        // 将方法返回值赋给变量
        int d = getNumber();
        System.out.println("d = " + d); // 输出 50
    }
    
    public static int getNumber() {
        return 50;
    }
}

复合赋值运算符

复合赋值运算符是将算术运算符和赋值运算符结合在一起的运算符,用于简化代码。

示例

java
public class CompoundAssignmentExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        
        // 加赋值
        a += b; // 等同于 a = a + b
        System.out.println("a += b: " + a); // 输出 15
        
        // 减赋值
        a -= b; // 等同于 a = a - b
        System.out.println("a -= b: " + a); // 输出 10
        
        // 乘赋值
        a *= b; // 等同于 a = a * b
        System.out.println("a *= b: " + a); // 输出 50
        
        // 除赋值
        a /= b; // 等同于 a = a / b
        System.out.println("a /= b: " + a); // 输出 10
        
        // 取模赋值
        a %= b; // 等同于 a = a % b
        System.out.println("a %= b: " + a); // 输出 0
    }
}

赋值运算符的优先级

赋值运算符的优先级较低,通常在表达式的最后执行。

示例

java
public class AssignmentPrecedenceExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int c = 3;
        
        // 先计算右侧表达式,再赋值
        a = b + c; // 先计算 b + c,再将结果赋给 a
        System.out.println("a = b + c: " + a); // 输出 8
        
        // 复合赋值运算符的优先级
        a = 10;
        a += b * c; // 先计算 b * c,再执行 +=
        System.out.println("a += b * c: " + a); // 输出 25
    }
}

赋值运算符的应用

1. 变量初始化

java
int age = 18;
String name = "John";
double salary = 5000.50;
boolean isStudent = true;

2. 变量更新

java
int count = 0;
count = 1; // 更新变量值
count += 1; // 增加 1
count *= 2; // 乘以 2

3. 表达式赋值

java
int a = 10;
int b = 5;
int c = a + b * 2; // 先计算表达式,再赋值

示例:赋值运算符的使用

java
public class AssignmentApplication {
    public static void main(String[] args) {
        // 基本赋值
        int score = 85;
        System.out.println("Initial score: " + score);
        
        // 复合赋值
        score += 5; // 加分
        System.out.println("After adding 5: " + score);
        
        score *= 1.1; // 乘以 1.1(注意:这里会发生类型转换)
        System.out.println("After multiplying by 1.1: " + score);
        
        // 多个赋值
        int x, y, z;
        x = y = z = 10;
        System.out.println("x = " + x + ", y = " + y + ", z = " + z);
        
        // 表达式赋值
        int a = 10;
        int b = 20;
        int result = a + b * 2 - 5;
        System.out.println("Result: " + result);
    }
}

常见问题

1. 赋值运算符与等于运算符的混淆

症状:使用 = 而不是 == 来比较值

解决方案:记住 = 是赋值运算符,== 是等于运算符

2. 复合赋值运算符的类型转换

症状:使用复合赋值运算符时发生意外的类型转换

解决方案:了解复合赋值运算符会自动进行类型转换,确保操作数类型兼容

3. 赋值运算符的优先级

症状:表达式计算顺序不符合预期

解决方案:使用括号来明确表达式的计算顺序

总结

赋值运算符是 Java 中用于将值赋给变量的工具,包括:

  • 基本赋值运算符:=
  • 复合赋值运算符:+=-=*=/=%=

复合赋值运算符可以简化代码,使代码更加简洁易读。在使用赋值运算符时,需要注意运算符的优先级和类型转换问题。

© 2026 编程马·菜鸟教程 版权所有