算术运算——自增和自减

算术运算——自增和自减

Java 的自增运算符 ++ 和自减运算符 -- 继承自 C++,可以使得变量的值加 1 或减 1。但用在变量的前面还是后面,效果不一样。

核心规则

  • 放在变量之后(a++、a--):先使用变量当前的值参与其他运算,然后再让变量加 1(或减 1)
  • 放在变量之前(++a、--a):先让变量加 1(或减 1),然后再使用变量新的值参与其他运算

如果单独使用(如 a++; 或 ++a;),不与其他运算结合,那么在前在后效果完全一样。

++ 和 -- 只能用在变量上,不能用在字面值上:

int a = 2;
a++;    // 正确
// 2++; // 编译报错,字面值不能用自增运算符Code language: JavaScript (javascript)

单独使用——前后无区别

int a = 1, b = 1;
a++;
b++;
System.out.println(a); // 输出 2
System.out.println(b); // 输出 2Code language: JavaScript (javascript)

参与赋值运算——前后有区别

int a = 1, b = 1;
int c = a++; // 先赋值(c=1),再自增(a变为2)
int d = ++b; // 先自增(b变为2),再赋值(d=2)

System.out.println(a); // 输出 2
System.out.println(b); // 输出 2
System.out.println(c); // 输出 1
System.out.println(d); // 输出 2Code language: JavaScript (javascript)

参与输出运算

int a = 6, b = 6;
System.out.println(a++); // 输出 6,然后 a 变为 7
System.out.println(a);   // 输出 7
System.out.println(++b); // b 先变为 7,输出 7
System.out.println(b);   // 输出 7Code language: JavaScript (javascript)

综合示例

public static void main(String[] args) {
    int a;
    a = 2;
    a++;                    // 单独使用,a 变为 3
    System.out.println(a); // 输出 3
    ++a;                    // 单独使用,a 变为 4
    System.out.println(a); // 输出 4

    int b = a++;           // ++在后面:先赋值(b=4),再自增(a变为5)
    System.out.println(a); // 输出 5
    System.out.println(b); // 输出 4

    int a1 = 4;
    int b1 = ++a1;         // ++在前面:先自增(a1变为5),再赋值(b1=5)
    System.out.println(a1); // 输出 5
    System.out.println(b1); // 输出 5

    int x = 6, y = 4;
    int z = x-- + ++y;    // x-- 先用6再减为5;++y 先加为5再用5;6+5=11
    System.out.println(z); // 输出 11
}Code language: JavaScript (javascript)

总结口诀

写法含义
a++先用后加
++a先加后用
a--先用后减
--a先减后用

注意:自增自减运算符只能作用于变量,不能作用于字面值或常量。在实际开发中,建议避免在同一行代码中混合多个自增/自减运算,以免降低代码可读性。

发表回复

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