Javascript 在循环中递增变量(模)
我希望在激活函数(称之为Javascript 在循环中递增变量(模),javascript,increment,Javascript,Increment,我希望在激活函数(称之为update)时,通过模式0、1、2、0、1、2…循环变量的值(称之为x)。通过执行以下操作,我成功地获得了1,2,0,1,2,0,…: var x = 0; function update() { x = ++x % 3; } 然后我尝试了后增量运算符,而x的值保持为0: var x = 0; function update() { x = x++ % 3; } 然后我越想这个代码,我就越困惑。我认为0模3是先完成的,然后(0的)赋值到x,但是x没有增加
update
)时,通过模式0、1、2、0、1、2…循环变量的值(称之为x
)。通过执行以下操作,我成功地获得了1,2,0,1,2,0,…:
var x = 0;
function update() {
x = ++x % 3;
}
然后我尝试了后增量运算符,而x
的值保持为0:
var x = 0;
function update() {
x = x++ % 3;
}
然后我越想这个代码,我就越困惑。我认为0模3是先完成的,然后(0的)赋值到
x
,但是x
没有增加到1?(看起来不是,但无论如何这不是我想要的-我希望模式从0开始。有人能解释一下这段代码是怎么回事以及如何实现从0开始的模式吗?你的第二个代码示例就是这样做的
look_at_value()
update()
look_at_value()
update()
...
如果要在查看值之前调用update,则需要初始化x=-1
(或2 mod 3)
更明确的准则是:
function update() {
x = (x+1) % 3;
}
简单地做
x=(x+1)怎么样%3;
?我觉得写x=x++
真的很奇怪……因为从逻辑上讲,x++
将被执行,它将返回x
的上一个值,并将其赋给x
,它的初始值,所以对我来说,x=x++%3
应该与x=x%3
相同。