gpt4 book ai didi

java - --i 和 i-- 的行为与++i 和 i++ 相同吗?

转载 作者:行者123 更新时间:2023-12-01 08:03:21 25 4
gpt4 key购买 nike

我最近查了一下++i 和 i++ 之间的区别,发现显然它在 for 循环中并不重要,但在这种情况下却很重要:

int i = 3;
int a = i++; // a = 3, i = 4
int b = ++a; // b = 4, a = 4

--i 和 i-- 的作用相同吗?我很想知道,因为我遇到过以下练习:

// pops the first non-null element in a stack
public E popFirstNonNull() throws EmptyStackException {

while ( (top >= 0) && ( S[top] == null ) ) {
top--;
}
if ( top >= 0 ) {
E topNonNull = S[top];
S[top--] = null; //for garbage collection
return topNonNull;
}
else {
throw new EmptyStackException();
}

}

如果 ++i/i++--i/i-- 行为相同,这一行不应该是: S[top--]=无效的; 更改为:S[--top]=null

最佳答案

没有。

代码的作用是

  • 记住 topNonNull 中的顶部元素
  • 清空顶部元素,然后
  • 减少 S[top--]=null 行中的 top-“指针”
  • 返回topNonNull

如果将其更改为 S[--top]=null 那么您将清空另一个元素,这不是您想要的。

关于java - --i 和 i-- 的行为与++i 和 i++ 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471140/

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