[英]JavaScript: Why is this causing an infinite loop?
我正在尝试通过找到JavaScript数字行环绕的点来找到最大的数字。 例如,如果它只能容纳数字0, 1, 127
,然后我会发现127
通过使用一个事实,即“ 127 + 1 = 0
”。 所以我做了一个功能
function getLargestNumber ( )
{
var somethingBig = 12939123, last = (somethingBig - 1);
while ( ++somethingBig > ++last );
return last;
}
但这会导致无限循环(或由于其他原因导致浏览器崩溃)。
我的功能逻辑有什么问题吗?
JavaScript数字始终存储为浮点数,而不是C中的整数。浮点数不会像C整数那样“环绕”。
看起来while循环将永远运行,因为您总是同时增加somethingBig和last,因此somethingBig总是更大:
while ( ++somethingBig > ++last );
我不确定您到底想完成什么,但这将导致无限循环。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.