简单的 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。
我试图理解为什么每当我跟踪变量时 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。