gpt4 book ai didi

java - Java 中一个非常简单的表达式,其计算方式很难理解

转载 作者:行者123 更新时间:2023-12-01 06:36:31 25 4
gpt4 key购买 nike

在 JSF 中开发 Web 应用程序时,我遇到了一个表达式,该表达式的计算方式是我无法遵循的。让我们用简单的 Java 代码来表示相同的表达式。

final public class Main
{
public static void main(String[] args)
{
int x=5;
int temp=10;

temp=temp + 1 + x;
System.out.println("temp = "+temp);

int var=10;
var=var++ + x;
System.out.println("var = "+var);
}
}
<小时/>

在上面的简单代码片段中,第一种情况很明显,它通过语句 System.out.println("temp = "+temp); 显示值 16.毫无疑问,但在第二种情况下,我使用简写运算符 ++ (var++) 表示同样的事情,这导致值 15 为显示在控制台上而不是显示 16。这里如何计算这个表达式?

<小时/>

这里,有一件显而易见的事情值得一提。在表达式 var++ 中,首先传递 10,然后使用该值(不是 11)计算赋值右侧的整个表达式,在本例中为 var++ + x,然后是 var 增加 1。因此,这里无法观察到对自身 (var) 的赋值。增量丢失在哪里?

最佳答案

var++ 计算结果为 var,然后递增 var。因此,您的表达式实际上被计算为 var + x。

操作顺序如下:

  • 评估 var++:10
  • 增量变量:var = 11
  • 将 x 添加到 10 : 15
  • 将加法结果赋给 var :var = 15

任何像这样的编程都应该被禁止开发,恕我直言。

关于java - Java 中一个非常简单的表达式,其计算方式很难理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8068328/

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