2016-10-14 11 views
0

変数をトレースするたびに、なぜzの出力が常に-1であるのか理解しようとしています。私はコインを数えていますが、私はforループを設定しようとしていますが、私は常にz = -1のためにエラーが出ます。単純なforループ//しかし、奇妙な出力の答え

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 

我々はループのロジックで行くとしたら、変数zは、代わりにこのようなことではないでしょうか?

2 
1 
0 

何が間違っていますか?

+0

編集:今、それはコードの後に​​コードのデバッグした後、それは変数zが定義されていないと言います。なぜ私は値が3のcoins.lengthとしてzを宣言したのですか? – Zulu

答えて

3

があなたの問題があります:セミコロンで

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

、ループは終了します。あなたは体なしでループを書いた。これは完全に有効で、うまく動作します。ループ後

、次のコードが一度実行される:それはループの実行を停止させるループ内の最後の値だから

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

zは、-1です。 coins.lengthは決して変更されず、配列に応じた値を持ちます。

forループロジックを使用する場合は、変数zをこのようにするべきではありませんか?

2 
1 
0 

いいえ、それは3から始まるので、ない2

+0

いいえcatch @null。 –

+0

OHHHHHHHHHHHHHHHHHHHH私の神!どうもありがとうございます!私は非常に恥ずかしいハハです。次回は本当に二重チェックしなければなりません。 – Zulu