gpt4 book ai didi

java - return 语句后方法中发生了什么

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:19 25 4
gpt4 key购买 nike

public class TestReturn {
int i = 0;

public static void main(String[] args) {
TestReturn t = new TestReturn();

System.out.println(t.test());
System.out.println(t.i);
}

private int test() {
return i++;
}
}

输出

0
1

我的问题是,

  1. 由于 test() 的返回值为 0,即未递增,所以当我打印时,我为什么会递增。我所知道的是,return 是方法的退出点,但是从这个方法我发现从方法返回后发生了一些事情。

那么 return 究竟是如何运作的呢?

最佳答案

简单。

当你执行 return i++ 时,i 最初为 0。i++ 称为 post 增量,并且正如其名称所示,i 将在 之后递增。

尽管 i++ 返回一个值 before 递增,该方法在返回 main 之前完成此语句。返回不会突然中途停止此语句(评估但不递增)

因此您将返回 0,递增它,然后在调用 System.out.println(t.i); 时看到 1。


从技术上讲,i 的值存储在堆栈上,类字段递增,然后返回复制出的 i 值。

关于java - return 语句后方法中发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19906078/

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