Javascript 算法理解
Javascript Algorithm Understanding
好的,所以我知道代码的总体作用。我明白为什么输出是我得到的输出。但是对于我的生活,我无法弄清楚 javascript 代码使浏览器达到最终输出所采取的确切步骤。这段代码如何让浏览器知道在添加一加二并得到三之后它应该添加三加二而不是三加三?基本上,我试图逐步弄清楚浏览器在被赋予此代码以供使用时如何使用此代码。由于下面的答案,我终于意识到我只是想多了,因为它实际上非常简单。二加一得三。 A 变为 2 B 变为 3。然后将三加到二得到五。 A 改为三 B 改为五。如果 C 最终为偶数,则会发生这种情况,但它会保存在变量 sum 中。这种情况一直发生到 4000000。
var a = 1;
var b = 2;
var sum = 0;
while ( a < 4000000) {
if(a % 2 === 0) {
sum += a;
}
c = a + b;
a = b;
b = c;
}
console.log(sum);
a
和 b
不等于同一个数字。在第一次迭代中:
c = a + b // 1 + 2
a = b // 2
b = c // 3
有什么不明白的?
a=b
将变量 a 的值设置为变量 b 的值。 b=c
将变量 b 的值设置为变量 c 的值。
这在整个循环中持续存在。当 while 重新启动时,a、b 和 c 将保留您刚刚设置的值。
好的,所以我知道代码的总体作用。我明白为什么输出是我得到的输出。但是对于我的生活,我无法弄清楚 javascript 代码使浏览器达到最终输出所采取的确切步骤。这段代码如何让浏览器知道在添加一加二并得到三之后它应该添加三加二而不是三加三?基本上,我试图逐步弄清楚浏览器在被赋予此代码以供使用时如何使用此代码。由于下面的答案,我终于意识到我只是想多了,因为它实际上非常简单。二加一得三。 A 变为 2 B 变为 3。然后将三加到二得到五。 A 改为三 B 改为五。如果 C 最终为偶数,则会发生这种情况,但它会保存在变量 sum 中。这种情况一直发生到 4000000。
var a = 1;
var b = 2;
var sum = 0;
while ( a < 4000000) {
if(a % 2 === 0) {
sum += a;
}
c = a + b;
a = b;
b = c;
}
console.log(sum);
a
和 b
不等于同一个数字。在第一次迭代中:
c = a + b // 1 + 2
a = b // 2
b = c // 3
有什么不明白的?
a=b
将变量 a 的值设置为变量 b 的值。 b=c
将变量 b 的值设置为变量 c 的值。
这在整个循环中持续存在。当 while 重新启动时,a、b 和 c 将保留您刚刚设置的值。