Javascript 使用for循环将一个数字相加到另一个数字(数字%4==0)的倍数?

Javascript 使用for循环将一个数字相加到另一个数字(数字%4==0)的倍数?,javascript,modulus,Javascript,Modulus,我希望检测数字是4的倍数。当不是的时候,我想用for循环把这个数字加起来,直到它是4的倍数。类似这样的内容(在javascript中): if(数字%4!==0){ 对于(变量i=0;i+=1){ 如果((数字+i)%4==0){ 返回编号+=i;//返回新编号 } } } 所以,我想增加一个不是4的倍数的数,直到它是4的倍数 这难道不能解决你的问题吗 if (number%4 !==0) { number += 4 - (number%4); } 使用模运算器的结果 var mod =

我希望检测数字是4的倍数。当不是的时候,我想用for循环把这个数字加起来,直到它是4的倍数。类似这样的内容(在javascript中):

if(数字%4!==0){
对于(变量i=0;i+=1){
如果((数字+i)%4==0){
返回编号+=i;//返回新编号
}
}
}

所以,我想增加一个不是4的倍数的数,直到它是4的倍数

这难道不能解决你的问题吗

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

使用模运算器的结果

var mod = number % 4;

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

如果你把循环条件改成
i<4
,它应该可以工作


但正如我在评论中提到的,最好使用
number+(4-(number%4))
而不使用循环。

为什么不将
4-(number%4)
添加到它?首先必须定义范围,循环从何处开始,从何处结束?否则任何循环都会持续很长时间,直到无穷远。奥菲里斯在回答中说,你们最好不要为此使用循环。在查找下一个4的倍数时,这不是性能消耗,想象一下,如果您想查找1000或1000000的倍数,需要多少额外的操作。这一切都可以通过在一行中使用两个操作来解决,如我们的答案所示。
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);
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);