gpt4 book ai didi

java - 前后增量,无循环

转载 作者:行者123 更新时间:2023-12-01 07:58:14 26 4
gpt4 key购买 nike

有人可以解释一下为什么结果是 z等于 12 ?我读过有关预增量和后增量的内容,但这对我来说仍然没有意义。

public static void main(String[] args) {
int x = 1, y = 2, z = 3;
x = x + y;
y = y + x;
z = z + (x++) + (++y);
System.out.print("x = " + x + "\ny = " + y + "\nz = " + z);
}
}

就像我看到的那样:

x = x + y :x -> 1 (后加一)+ y -> 3 (预先加一),x = 4

y = y + x :y -> 4 (预先加一)+ x -> 2 (帖子加一),y = 6

z = z + (x++) + (++y) :z -> 3 + x -> 3 (帖子加一)+ y -> 5 (预增一),z =11

最佳答案

请参阅下面代码中的注释。

问题中您自己的注释的主要问题是您看到没有预增量和后增量运算符。例如,在 x = x + y 中,这是一个简单的赋值,任何地方都没有增量。

public static void main(String[] args) {
int x = 1, y = 2, z = 3;
// so now (x,y,z) == (1,2,3)
x = x + y;
// so now (x,y,z) == (3,2,3)
y = y + x;
// so now (x,y,z) == (3,5,3)
z = z + (x++) + (++y);
// here, x++ would return 3 (unincremented)
// ++y would return 6 (incremented)
// so now z = 3 + 3 (unincremented x) + 6 (incremented y) == 12
// and in the process both x and y have been incremented
// so we have (x,y,z) == (4,6,12)
System.out.print("x = " + x + "\ny = " + y + "\nz = " + z);
}
}

关于java - 前后增量,无循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com