[英]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.