如何缩进代码以使答案正确?

How to indent the code so the answer will be correct?

我有这个问题:以下不正确缩进的 while 循环显示什么? (提示:用适当的缩进重写它)

var k = 0
while (k < 5)
alert(k)
k++

A) 0, 1, 2, 3, 4
B) 1, 2, 3, 4, 5
C) 0, 1, 2, 3, 4, 5
D) 0, 0 0, 0, 0, 0, 0, ... 永远

我发现答案是D,但我不知道如何用适当的缩进重写它。谁能帮帮我?

刚刚:

var k = 0
while (k < 5)
    alert(k)
k++

如果您从不递增 k,那么您永远不会 "print" 除 0 以外的任何值,因为 k < 5 始终是 true。你在 infinite loop.

如果你想让你的程序terminate(结束),那么你应该:

var k = 0
while (k < 5){
    alert(k)
    k++
}

这样k会"printed"(0,1,2,3,..)直到到达k = 5然后停止。

var k = 0
while (k < 5)
alert(k)
k++

如果没有括号,while 语句只有一行将被视为 while 语句的主体。

你有一个无限循环,因为永远不会达到 k++,因为 while 语句中的条件始终为真。所以,答案是D。

要使条件成立,您应该将 { } 添加到 while 语句中,并在复合语句的主体中包含 k++,如下所示:

var k = 0
while (k < 5) {
    alert(k)
    k++
}

您不能仅通过更改缩进来解决此问题,您需要大括号。

var k = 0
while (k < 5) {
  alert(k)
  k++
}
var k = 0
while(k < 5)
{
    alert(k)
    k++
}

这应该是正确的,如果您不放置大括号 ({,}) 只有下一行将被视为 "inside" 循环。