2016-09-29 9 views
-2

ballgroundの2つのオブジェクトがあり、それらの間の距離が最も遠かったのですが、greatestの値は常に「undefined」ですか?出力が未定義になるのはなぜですか?

は、ここでは、コードです:

var dt: Array = []; 
var greatest = 0; 
var i: int; 
var j: int; 
ball.addEventListener(Event.ENTER_FRAME, bg); 
function bg(event: Event) { 
    d = Math.sqrt(ball.x - ground.x) * (ball.x * ground.x) + (ball.y - ground.y) * (ball.y - ground.y); 

    for (i = 1; i < 1002; i++) { 
     dt[i] = d; 
    } 
    for (j = 1; j < 1002; j++) { 
     if (dt[j] > dt[j + 1]) { 
      greatest = dt[j]; 
     } else { 
      greatest = dt[(j + 1)]; 
     } 
    } 
} 

答えて

1

私は、そのコードがために良いですか何が行うことになってん何見当がつかない!

最初forループ、dの値で、10011の範囲内dt配列の要素を割り当てます。しかしgreatestの値は常にundefinedである理由は、ここです! 2番目のforループの各反復で

は、次の2つの等しい値を比較し、これ>比較が失敗し、流れはdt[(j+1)]の結果とgreatestを割り当てるelse文の中の命令を実行します。しかし、最後の反復(j1001に等しいとき)では、同じルーチンが実行されるが、dt[(j+1)]の式はundefinedであると計算される(1の範囲にあることを覚えておく) 〜1001 :)

関連する問題