赋值运算符

赋值运算符

使用 = 等号来进行赋值运算,= 也叫赋值运算符,用于对变量进行赋值。

赋值运算符除了将右边的表达式计算结果赋给左边变量以外,还有一个特点:赋值表达式本身也有值,它的值就是赋值完成后左边变量的值。

int a = 12;
int b;
System.out.println(b = a * 3); // 输出 36,赋值表达式 b = a * 3 本身的值为 36
System.out.println(b);         // 输出 36Code language: JavaScript (javascript)

连续赋值

可以将多个变量连续赋同一个值:

int a, b, c;
a = b = c = 100; // a、b、c 的值都为 100Code language: JavaScript (javascript)

扩展赋值运算符

在赋值运算符 = 前加上其他运算符,即为扩展赋值运算符:

运算符说明等价形式
+=加后赋值a += b 等价于 a = (类型)(a + b)
-=减后赋值a -= b 等价于 a = (类型)(a - b)
*=乘后赋值a *= b 等价于 a = (类型)(a * b)
/=除后赋值a /= b 等价于 a = (类型)(a / b)
%=取余后赋值a %= b 等价于 a = (类型)(a % b)

注意:扩展赋值运算符自带强制类型转换,这是它与普通赋值运算的重要区别。

short s = 5;
s += 5;   // 正确,扩展赋值运算符自动进行强制类型转换
// s = s + 5; // 编译错误,s + 5 运算时 s 自动提升为 int,结果是 int 类型,不能直接赋给 shortCode language: JavaScript (javascript)

完整示例代码

public static void main(String[] args) {
    // 赋值表达式本身有值
    // int a;
    // System.out.println(a = 13 * 2); // 输出 26
    // System.out.println(a);          // 输出 26

    // 连续赋值
    // int a, b, c;
    // a = b = c = 100;

    // 扩展赋值运算符
    // int x = 100;
    // x %= 5;
    // System.out.println(x); // 输出 0

    // short 类型与扩展赋值
    // short s = 5;
    // s = (short)(s + 5); // 需要显式强制类型转换
    // System.out.println(s);

    short s = 5;
    s += 5; // 扩展赋值运算符自动进行强制类型转换
    System.out.println(s); // 输出 10
}Code language: JavaScript (javascript)

总结:扩展赋值运算符(+=、-=、*=、/=、%=)不仅写法简洁,还会自动进行强制类型转换,避免了 byte、short、char 参与运算后需手动强转的麻烦。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注