我是JavaScript编程的新手。在学习时我遇到了以下代码:
jcmd 8976 Thread.print | less -N
运行代码会返回 9 。我完全理解(void) mapView:( NMAMapView *) mapView didSelectObjects:(NSArray *) objects
循环如何工作以及模数如何运作(例如for (i = 0, j = 0; i <= 6; i++) {
if (i % 2) j += i;
}
返回for
)。
但是,我在理解这个特定代码时遇到了麻烦 - 特别是23 % 7
语句参数。有人会对我解释这个吗?
答案 0 :(得分:2)
基本上你加上赔率。
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);
&#13;
var i, count = 0;
for (i = 0; i <= 6; i++) {
if (i % 2 !== 0) {
console.log(i, i % 2),
count += i;
}
}
console.log(count);
&#13;
答案 1 :(得分:0)
最后j = 9
的原因是因为i
j
数字不均匀
x%2
其中x
是偶数会产生0
,而false
会在if
内评估为x%2
。
x
其中1
数字不均匀,会产生true
,而if
会在x%y
内评估为true
。
因此,每次i
评估为j
时,i=0
的当前值都会添加到0%2=0
循环开始
1:j=0
►i=1
►1%2=1
2:j=1 //(0+1)
►i=2
►2%2=0
3:j=1
►i=3
►3%2=1
4:j=4 //(1+3)
►i=4
►4%2=0
5:j=4
►i=5
►5%2=1
6: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)
►{{1}}
循环结束
{{1}}