3

计算并显示 (2 的 10 次方) 值的程序

此语句导致 1024。我不明白它在达到“9”后如何继续循环。"< 10"意思是循环十次,还是循环到小于“10”的总和?希望有人向我解释这一点。谢谢!

var result = 1;
var counter = 0;
while (counter < 10) {
  result = result * 2;
  counter = counter + 1;
}
show(result);
4

6 回答 6

11

您的计数器运行十次,值 0-9 各运行一次。在编写这样的循环(包括 a <)时,我将 10 视为“此循环将运行十次”。它对像这样的小问题有很大帮助。

请记住,编程中只有两件非常困难的事情:缓存验证、变量替换和非一错误。

于 2012-06-22T15:41:00.933 回答
4
loop 1: result = 1*2 (2) counter = 1
loop 2: result = 2*2 (4) counter = 2
loop 3: result = 4*2 (8) counter = 3
...
loop 10: result = 512*2 (1024)counter = 10
于 2012-06-22T15:44:34.557 回答
2

它循环了 10 次,因此它乘以 2 10 次,因此给你 2^10 = 1024。完全正确。PS如果你只想要这个乘法,你会更好

result = 1 << 10
于 2012-06-22T15:41:35.630 回答
2

是的,十乘以 0 到 9 = 10。

当编译器看到如果 10 < 10 它评估为假。如果您想查看 10 将条件更改为 <=

于 2012-06-22T15:42:00.980 回答
2

只有满足 while 循环的条件,程序才会进入循环。所以你在进入循环之前检查它。

如果您希望程序再次进入循环,请使用 do-while 循环,在执行循环后检查条件。您还可以将条件更改为“counter <= 10”并按原样使用 while 循环。

在这里,您可以找到有关 while-/do-while-loops 以及 javascript 中断的更多信息。

于 2012-06-22T15:47:32.237 回答
0

什么时候counter是 1result是 2^1 什么时候counter是 2result是 2^2

因为counteris10在循环的末尾,所以resultis 2^10

于 2012-06-22T22:26:19.633 回答