2011-02-04 10 views
0

私は問題を持っていますが、ちょうどうまくいくはずですが、理解できないバグのようです。おそらくあなたはバグを見つけることができますか?beginbeginは検出されません

注:「begin」と「end」に問題はありません。「beginbegin」と「endend」は常にfalseを返します。

マイ配列値:

beginbegin,endend,-,-,-,begin,end,-,-,-,begin,end,-,-,-,-,begin,-,end 

マイコード:それはあなたのループのコードではなく文字列の比較でありますように

private var xm:int = 0; 

      private function createBeam():void { 
       for(var a:int=xm;a<naArray.length;a++) { 
        if(beamStatusArray[a]=="begin" || beamStatusArray[a]=="beginbegin") { 
         xm = a; 
     trace(beamStatusArray[a]=="beginbegin"); //always return false even there a "beginbegin" in the array 
    if(beamStatusArray[a]=="begin" || beamStatusArray[a]=="beginbegin") { 
       var getBeam:int = yArray[a] 
       for(var aa:int=a;aa<naArray.length;aa++) { 
        if(beamStatusArray[aa]=="end" || beamStatusArray[aa]=="endend") { 
         break; 
        } 
       } 
      } 
     } 
    } 
+0

ここで、外側forループ(var a:int = aa)の変数aaを取得していますか? –

答えて

1

問題が見えます。外部ループのカウンタが0ではなくaaに初期化されるのはなぜですか?

+0

0からのstartの代わりにaaを使うのは正しいです。最後のインデックスを返して、配列の最後までループを続けることができます。 – Proyb2

+0

どこにaaが宣言され、createBeamの先頭にどのような値がありますか?クラス変数の場合、内部ループに同じ名前の別の変数を宣言することは一般的にはお勧めできません。 – takteek

+0

は私のコードを更新しますが、私はまだ新しいコードで "beginbegin"をfalseにします。それとも何をお勧めしますか? – Proyb2

関連する問題