java 前缀和后缀增量

zz2j4svz  于 2023-02-02  发布在  Java
关注(0)|答案(3)|浏览(147)
a = 1;
int a2 = a++;
System.out.println("----------Test 3 ----------");
System.out.println("The value of a is " + a);
System.out.println("The value of a2 is " + a2);
System.out.println("The value of a2 is " + a2);

结果是:

  • --------测试三----------
    a的值为3
    a2的值为2
    a2的值为2
    我不明白为什么a2的值在第二次输出后没有增加,甚至a也是用后缀增量增加的,并赋给a2,你给我解释一下。
jhiyze9q

jhiyze9q1#

我不明白为什么在第二次输出后a2的值没有增加,即使a使用后缀增量增加并赋给a2。
让我们一步一步来:

a = 1

将变量a设置为1;现在:

int a2 = a++;

将等同于:

int a2 = a;
a++;

首先赋值,然后才递增,因此输出:

The value of a is 2
The value of a2 is 1
The value of a2 is 1

以及名称post固定增量。
对于您想要的行为,请改用++a,即:

int a = 1;
int a2 = ++a;
System.out.println("The value of a is " + a);
System.out.println("The value of a2 is " + a2);
System.out.println("The value of a2 is " + a2);

输出:

The value of a is 2
The value of a2 is 2
The value of a2 is 2

在这种情况下:
int a2 = ++a;等效于:

a++;
 int a2 = a;
zzwlnbp8

zzwlnbp82#

前缀和后缀增量仅在您正在执行的语句中起作用。请尝试在print语句中添加前缀和后缀增量。

gj3fmq9x

gj3fmq9x3#

这就是后增量运算符的设计工作原理...

int a2 = a++;

就相当于

int a2 = a;
a = a + 1;

因此您的代码将生成以下输出:

----------Test 3 ----------
The value of a is 2
The value of a2 is 1
The value of a2 is 1

相关问题