var j=0, t=0;
do{j++; t+=j;}while(j<5);
alert(t);
为什么t在上面的代码中返回15?
答案 0 :(得分:5)
让我们把它清理干净:
var j = 0;
var t = 0;
do {
j++;
t += j;
} while (j < 5);
alert(t);
如果您手动展开(我会),这是没有循环的等效代码:
var j = 0;
var t = 0;
j++; // j = 1
t += j;
j++; // j = 2
t += j;
j++; // j = 3
t += j;
j++; // j = 4
t += j;
j++; // j = 5
t += j;
alert(t);
冷凝这个:
var t = 0;
t += 1;
t += 2;
t += 3;
t += 4;
t += 5;
alert(t);
结果是:
var t = 1 + 2 + 3 + 4 + 5;
alert(t);
我认为你可以做简单的算术:
var t = 15;
alert(t);
答案 1 :(得分:0)
因为j在评估while测试之前递增,所以循环将针对以下j值运行:
j = 1, 2, 3, 4, 5
最终值t为15(1 + 2 + 3 + 4 + 5)。
答案 2 :(得分:0)
可能有3个陷阱:
你去:
循环#0: J = 1 T = 1
循环#1: J = 2 T = 3
循环#2: J = 3 T = 6
循环#3: J = 4 T = 10
循环#4: J = 5 T = 10
答案 3 :(得分:0)
这是非常微不足道的东西 - 你应该能够按照我在这里所拥有的东西
j = 1; t = 1
j = 2; t = 3
j = 3; t = 6
j = 4; t = 10
j = 5; t = 15
答案 4 :(得分:0)
每次循环运行时,j都会递增。在增加之后,t将j添加到它。在第一遍中,t是1.然后j变为2,t变为3,依此类推:
j=1, t=1
j=2, t=3
j=3, t=6
j=4, t=10
j=5, t=15 (j is not less than 5, loop ends).