0

我有个问题。

我需要一个 Javascript 函数,它将变量值增加(增加)4,当变量值为 20 时,将变量的值设置为 0 并再次将其增加 4,依此类推...

我认为我需要 for 循环和 if 条件,但我不知道如何实现这个......

例子

结果必须是:

x = 0; 那么 x = 4, x = 8, x = 12, x = 16, x = 20, x = 0, x= 4 ....

谢谢

4

5 回答 5

5

你可以用一对嵌套的循环来做到这一点:

while (true) {
    for (var x = 0; x <= 20; x += 4) {
        // use x
    }
}

这将比使用 mod ( %) 运算符更有效。

编辑

从您的评论中,听起来您想要增量生成序列,而不是循环生成。这是一个函数,它将返回一个函数,每次调用它时都会生成序列的下一个元素:

function makeSequence() {
    var x = 20; // so it wraps to 0 first time
    return function() {
        if (x == 20) { x = 0 }
        else { x += 4 }
        return x;
    }
}

然后你可以像这样使用它(在很多方面):

var sequence = makeSequence();

// and each time you needed the next element of the sequence:

var x = sequence();
于 2012-08-01T06:03:28.107 回答
4

这可以通过加法运算符和模数的组合轻松解决%

x = 0;
//loop
x = (x+4)%24; 

演示:http: //jsbin.com/okereg/1/edit

于 2012-08-01T06:04:17.420 回答
2

以下将有所帮助

function fnAddVal(val) {
     if (val >= 20)
            return 0;
     else
       return val+4;

}
于 2012-08-01T06:05:27.293 回答
2

简单的!

x = (x + 4) % 24;

你想要一个无限循环吗?什么?

于 2012-08-01T06:06:36.857 回答
1

你可以为你的循环尝试这样的事情:

<html>
<body>
<script language="javascript">
int x = 0;
while ( x <= 20 ) 
{
    alert("The number is " + x)
    if ( x >= 20 ) 
    {
        x = 0;
    }
    x += 4;
}
</script>
</body>
</html>
于 2012-08-01T06:06:35.787 回答