简单的 for 循环 // 但奇怪的输出答案

simple for loop // but strange output answer

我试图理解为什么每当我跟踪变量时 z 的输出总是 -1。我正在数硬币,我正在尝试设置一个 for 循环,但是,由于 z = -1,我总是收到错误提示。

for (var z:int = coins.length; z >= 0; z--);
{
   trace(z);
   trace(coins.length);
}

我得到的这两个变量的输出答案是:

Z = -1
coins.length = 3

为什么会这样?因为我在输出框中看到的是:

-1
-1
-1
-1
-1
-1
keeps repeating

如果我们按照 for 循环逻辑,变量 z 不应该像这样吗?

2
1
0

有什么问题吗?

你的问题是:

for (var z:int = coins.length; z >= 0; z--); // the semicolon at the end.

有了分号,循环结束。你写了一个没有主体的循环。这是完全有效的并且执行得很好。

循环后,执行一次如下代码:

{
   trace(z);
   trace(coins.length);
}

z 是-1,因为这是它在循环中导致循环停止执行的最后一个值。 coins.length 从未改变并且根据数组具有值。

If we were to go by the for loop logic, shouldn't the variable z be like this instead?

2
1
0

不,因为它从 3 开始,而不是 2。