基本模数理解有问题
Trouble with basic modulus understanding
我是 JavaScript 编程的新手。学习时遇到如下代码:
for (i = 0, j = 0; i <= 6; i++) {
if (i % 2) j += i;
}
运行 代码 returns 9。我完全理解 for
循环的工作原理以及模数的工作原理(例如 23 % 7
returns 2
)。
但是,我在理解这段特定代码时遇到了麻烦 - 尤其是 if
语句参数。有人愿意给我解释一下吗?
最后之所以j = 9
是因为i
加上永远的奇数j
x%2
其中 x
是偶数将导致 0
进而在 if
.[=46= 中求得 false
]
x%2
其中 x
是奇数将导致 1
进而在 if
.[=46= 中计算为 true
]
因此每次 x%y
的计算结果为 true
时 i
的当前值被添加到 j
循环开始
1: i=0
► 0%2=0
► j=0
2: i=1
► 1%2=1
► j=1 //(0+1)
3: i=2
► 2%2=0
► j=1
4: i=3
► 3%2=1
► j=4 //(1+3)
5: i=4
► 4%2=0
► j=4
6: i=5
► 5%2=1
► j=9 //(4+5)
循环结束
for (i = 0, j = 0; i <= 6; i++) {
if (i % 2) j += i; // for every uneven number i is added to j
}
console.log(j)
基本上你加上赔率。
if (i % 2)
等同于
if (i % 2 !== 0)
var i, count = 0;
for (i = 0; i <= 6; i++) {
if (i % 2) {
console.log(i, i % 2),
count += i;
}
}
console.log(count);
var i, count = 0;
for (i = 0; i <= 6; i++) {
if (i % 2 !== 0) {
console.log(i, i % 2),
count += i;
}
}
console.log(count);
我是 JavaScript 编程的新手。学习时遇到如下代码:
for (i = 0, j = 0; i <= 6; i++) {
if (i % 2) j += i;
}
运行 代码 returns 9。我完全理解 for
循环的工作原理以及模数的工作原理(例如 23 % 7
returns 2
)。
但是,我在理解这段特定代码时遇到了麻烦 - 尤其是 if
语句参数。有人愿意给我解释一下吗?
最后之所以j = 9
是因为i
加上永远的奇数j
x%2
其中 x
是偶数将导致 0
进而在 if
.[=46= 中求得 false
]
x%2
其中 x
是奇数将导致 1
进而在 if
.[=46= 中计算为 true
]
因此每次 x%y
的计算结果为 true
时 i
的当前值被添加到 j
循环开始
1: i=0
► 0%2=0
► j=0
2: i=1
► 1%2=1
► j=1 //(0+1)
3: i=2
► 2%2=0
► j=1
4: i=3
► 3%2=1
► j=4 //(1+3)
5: i=4
► 4%2=0
► j=4
6: i=5
► 5%2=1
► j=9 //(4+5)
循环结束
for (i = 0, j = 0; i <= 6; i++) {
if (i % 2) j += i; // for every uneven number i is added to j
}
console.log(j)
基本上你加上赔率。
if (i % 2)
等同于
if (i % 2 !== 0)
var i, count = 0;
for (i = 0; i <= 6; i++) {
if (i % 2) {
console.log(i, i % 2),
count += i;
}
}
console.log(count);
var i, count = 0;
for (i = 0; i <= 6; i++) {
if (i % 2 !== 0) {
console.log(i, i % 2),
count += i;
}
}
console.log(count);