gpt4 book ai didi

java - 为什么这个 Java 循环不终止?

转载 作者:行者123 更新时间:2023-12-01 16:50:29 25 4
gpt4 key购买 nike

我不明白为什么 Java 中的循环不终止。

long i = 26L ;
long j = 24L ;
for (long x = 0L ; x < 1000L ; x++) {
i = i / 12 + 23 * (--x ) ;
j = (x--) + j + 5 ;
}

最佳答案

在循环的每次迭代中,您递减计数器x两次。这实际上意味着永远不会达到循环的上限。事实上,即使在第一次迭代之后,计数器也应该变为负值。

这可能是您想要做的:

for (long x = 0L ; x < 1000L ; x++) {
long xTemp = x;
i = i / 12 + 23 * (--xTemp ) ;
j = (--xTemp) + j + 5 ;
}

或者可能是这样:

for (long x = 0L ; x < 1000L ; x++) {
i = i / 12 + 23 * (x-1L) ;
j = (x-1L) + j + 5 ;
}

一般来说,如果您将 x 指定为 for 循环计数器,那么作为一个好的实践,您不应该在循环内乱搞它。您可以在循环内使用它的值,但让循环本身管理它。

关于java - 为什么这个 Java 循环不终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41055992/

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