gpt4 book ai didi

java - for循环在这个平方根方法中起什么作用?

转载 作者:行者123 更新时间:2023-11-30 02:48:20 25 4
gpt4 key购买 nike

我一直在解决一个问题,我需要 BigInteger 的平方根,因此复制了其他人的方法,因为 Java 没有内置方法(据我所知)并且它有效。

方法如下:

public static BigInteger bigIntSqRootFloor(BigInteger x)
throws IllegalArgumentException {
if (x.compareTo(BigInteger.ZERO) < 0) {
throw new IllegalArgumentException("Negative argument.");
}

if (x .equals(BigInteger.ZERO) || x.equals(BigInteger.ONE)) {
return x;
}

BigInteger two = BigInteger.valueOf(2L);
BigInteger y;

for(y = x.divide(two); y.compareTo(x.divide(y)) > 0; y = ((x.divide(y)).add(y)).divide(two));
return y;
}

但是,我认为 for 循环是该方法中最重要的部分,但我从未见过以分号结尾的循环,而且我不知道它是如何工作的。有人可以向我解释一下它在这个方法中的作用是什么吗?

最佳答案

这是一个空的 for 循环 - 即所有逻辑都在 for 语句中执行,并且没有循环体。

for(y = x.divide(two); y.compareTo(x.divide(y)) > 0; y = ((x.divide(y)).add(y)).divide(two));

相当于:

for(y = x.divide(two); y.compareTo(x.divide(y)) > 0; ) {
y = ((x.divide(y)).add(y)).divide(two);
}

或发送至:

y = x.divide(two);
while (y.compareTo(x.divide(y)) > 0) {
y = ((x.divide(y)).add(y)).divide(two);
}

关于java - for循环在这个平方根方法中起什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39486134/

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