gpt4 book ai didi

java - a += a++ * a++ * a++ 在 Java 中。它是如何被评估的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:32 26 4
gpt4 key购买 nike

我遇到了这个问题 in this website ,并在 Eclipse 中尝试过,但无法理解它们是如何被评估的。

    int x = 3, y = 7, z = 4;

x += x++ * x++ * x++; // gives x = 63
System.out.println(x);

y = y * y++;
System.out.println(y); // gives y = 49

z = z++ + z;
System.out.println(z); // gives z = 9

根据网站上的评论,x += x++ * x++ * x++ 解析为 x = x+((x+2)*(x+1)*x) 结果是正确的。我想我遗漏了有关此运算符优先级的一些信息。

最佳答案

Java 根据优先级从左到右计算表达式。

int x = 3, y = 7, z = 4;

x (3) += x++ (3) * x++ (4) * x++ (5); // gives x = 63
System.out.println(x);

y = y (7) * y++ (7);
System.out.println(y); // gives y = 49

z = z++ (4) + z (5);
System.out.println(z); // gives z = 9

后缀递增运算符仅在使用/返回变量后递增变量。一切似乎都是正确的。

这是后缀增量运算符的伪代码:

int x = 5;
int temp = x;
x += 1;
return temp;

来自 JLS 15.14.2(reference):

The value of the postfix increment expression is the value of the variable before the new value is stored.

关于java - a += a++ * a++ * a++ 在 Java 中。它是如何被评估的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369393/

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