这个循环序列是如何流动的
how does this loop sequence flows
我遇到了一个 qns,如果两个数字彼此不相等,它会求和,我不太明白 while 循环中的语句是如何工作的。
例如 a = 4, b = 0
sum 的最终值应该是 10,因为它是 4+3+2+1+0 = 10
function getSum (a,b)
{
var sum = 0;
while (a !== b)
{
sum += a < b ? a++:b++;
}
return sum+a
}
我想把它看成
(总和+=a) < b ? a++:b++
或
总和 += (a < b) ? a++:b++
条件是粗体的条件
(编辑:我知道第二部分的条件在 ? 之前尽管我用笔和纸写下来,但还是迷路了,所以先是粗体字)
如果有人能教/帮忙一步一步分解循环序列,非常感谢!
由于+=
是赋值操作,所以是最后执行的操作之一。所以,
sum += (a < b) ? a++:b++
是正确的等价物。
这一行相当于:
if (a<b) {
sum += a++;
}
else {
sum += b++;
}
我遇到了一个 qns,如果两个数字彼此不相等,它会求和,我不太明白 while 循环中的语句是如何工作的。
例如 a = 4, b = 0 sum 的最终值应该是 10,因为它是 4+3+2+1+0 = 10
function getSum (a,b)
{
var sum = 0;
while (a !== b)
{
sum += a < b ? a++:b++;
}
return sum+a
}
我想把它看成
(总和+=a) < b ? a++:b++
或
总和 += (a < b) ? a++:b++
条件是粗体的条件
(编辑:我知道第二部分的条件在 ? 之前尽管我用笔和纸写下来,但还是迷路了,所以先是粗体字)
如果有人能教/帮忙一步一步分解循环序列,非常感谢!
由于+=
是赋值操作,所以是最后执行的操作之一。所以,
sum += (a < b) ? a++:b++
是正确的等价物。
这一行相当于:
if (a<b) {
sum += a++;
}
else {
sum += b++;
}