我在将PHP脚本移至Java时遇到问题。我正在使用谐波系列组。我有它在PHP中工作,但是当我将它转换为Java时,它永远不会结束(无限循环)。有任何想法吗?或者甚至有更好的方法来完成它?谐波系列
的PHP:
<?php
$current = 0;
$num = 2.5;
while($current < $num) {
for($i = 1; $current < $num; $i++) {
$current = $current + (1/$i);
}
// this ($current) will return "2.5928571428571" (which it should)
echo $current;
}
?>
的爪哇(相当于Java中的,但没有完成循环):
double current = 0;
double num = 2.5;
int i = 0;
while(current < num) {
for(i = 1; current < num; i++) {
current = current + (1/i);
}
System.out.println(current);
}
或者,也许我完全做错了:○。
出于好奇:什么是'while'循环? – Dennis
Java是强类型的,而php不是,并且会为你进行类型转换。如前所述,当你试图用一个整数除数时,java会假定你有一个整数结果,并抛出你的浮点结果,所以你永远不会真正添加任何东西到当前,这会导致你的无限循环。 – gview