2013-05-30 74 views
0

我希望檢測一個數是4的倍數。當它不是我正在考慮使用for循環來加起來,直到它是4的倍數。所以像這樣(在JavaScript中):使用for循環將一個數添加到它的倍數(數字%4 == 0)的另一個數?

if (number % 4 !== 0) { 
    for (var i=0;<confused about what condition to put here>; i+=1) { 
    if ((number + i) % 4 == 0) { 
     return number += i; // Return the new number 
    } 
    } 
} 

所以,我想增加一個數字,是不是4的倍數,直到它是4

+3

你爲什麼不加'4 - (數量%4)'呢? – Ofiris

+1

您首先必須定義範圍,從哪裏開始循環,以及它應該在哪裏結束?否則任何循環都會繼續進行,直到無窮無盡 –

+0

正如Ofiris在他的回答中所說的,最好不要使用循環。而在找到4的倍數的情況下,它不是這樣的性能消耗,如果想要找到1000或1000000的倍數,則需要多少額外的操作。這一切都可以通過在我們的答案中看到的一行中的兩個操作來解決。 – mgamer

回答

4

多是不是該要解決問題了嗎?

if (number%4 !==0) { 
number += 4 - (number%4); 
} 
1

使用運算符modulo的結果。

var mod = number % 4; 

if (mod !== 0) 
    number += (4 - mod); 
2

那麼,如果你改變循環條件爲i < 4它應該工作。

但正如我在評論中提到的,你最好使用number + (4 - (number % 4))不使用循環。

1
var someRandomNumber = 9; 

console.log('Numbers original value: ' + someRandomNumber); 

function makeDivisibleByFour(number) { 
    while (number % 4 !== 0) 
     number++; 
    return number; 
} 

someRandomNumber = makeDivisibleByFour(someRandomNumber); 

console.log('Numbers new value: ' + someRandomNumber); 
相關問題