1

我再次在 CodeAcademy 工作,我一直在继续,现在正在使用 while 循环。然而,我在草稿本上工作了一点,我注意到了一些奇怪的东西。此文本正下方的代码:

var counter = 1;

while(counter <= 10){
    console.log(counter);
    counter = counter + 1;
}

结果给出了这个。为什么底部会弹出 11。它不应该在那里。是算 0。还是对此有更苦涩的解释。很高兴得到一些帮助,谢谢:P

结果:

1
2
3
4
5
6
7
8
9
10
==> 11 
4

4 回答 4

2

这是控制台的行为。在某些情况下,它将返回最后一个表达式的结果

var counter = 1, t="loop";

while(counter <= 10){
    console.log(counter);
    counter = counter + 1;
    t = "loop end";
}

会给你

1
2
3
4
5
6
7
8
9
10
"loop end"
于 2013-03-06T08:25:41.287 回答
0

我正在 Firefox 中进行测试,它正在记录 OP 所说的内容。这是我的看法。

变量计数器 = 1;

1 is it <= 10 yes, print add 1
2 is it <= 10 yes, print add 1
3 is it <= 10 yes, print add 1
4 is it <= 10 yes, print add 1
5 is it <= 10 yes, print add 1
6 is it <= 10 yes, print add 1
7 is it <= 10 yes, print add 1
8 is it <= 10 yes, print add 1
9 is it <= 10 yes, print add 1
10 is it <= 10 yes, print add 1
11  <-- prints it. 

while 循环在传入时知道“计数器”,而不是在声明“之后”或在循环内。它没有反向引用。所以还是得再过一遍。

before: 1

after: 2

before: 2

after: 3

before: 3

after: 4

before: 4

after: 5

before: 5

after: 6

before: 6

after: 7

before: 7

after: 8

before: 8

after: 9

before: 9

after: 10

before: 10

after: 11
于 2013-03-06T08:08:16.293 回答
0

你应该做这个。

var counter = 0;

while(counter < 10){
    console.log(counter);
    counter = counter + 1;
}

while(counter <= 10) 表示当 counter 小于或等于 10 时,它将执行循环。这就是为什么还要打印数字 11 的原因。

于 2016-02-19T01:40:42.547 回答
-1

当 count 等于 10 时,条件 'counter <= 10' 允许流进入循环主体。您正在增加主体中的计数,因此最终计数将为 11。

将条件更改为“counter < 10”,结果将为 10。

这将导致 1 - 10 并留下计数为 10:

var counter = 0;

while(counter < 10){
    counter = counter + 1;
    console.log(counter);
}
于 2013-03-06T07:47:34.657 回答