2017-06-14 21 views
0

私は多くの時間のために試みたが、returnが定義されていない理由を私は理解していない...引数を指定したreturn関数が定義されていないのはなぜですか?

これは私のコードです:

var x = 30.858; 
var id = 584; 

var num_reg = region(x); 
if (num_reg == false) { 
    num_reg = ripeti_region(x); 
} 


function ripeti_region(lng) { 
    if (lng <= 180) { 
    lng = lng - 0.2; 
    } else if (lng => -180) { 
    lng = lng + 0.2; 
    } 

    if (region(lng) != false) { 
    var x = region(lng); 
    return x; 
    } else { 
    ripeti_region(lng); 
    } 
} 


function region(lng) { 
    if (lng <= 30.458) { 
    return id; 
    } else { 
    return false; 
    } 
} 


alert(num_reg); 

私はnum_regを警告した場合、私は未定義のリターンを持っていますが、コードがで働きます機能ripeti_region(lng)で事実あなたがalert(x)を追加した場合、それはだから私はそのnum_regが出力var id値のように与えるvar id

を印刷します。

これはjsfiddleです: https://jsfiddle.net/nj4duw61/

+1

したかったので、機能しないの 'すべてのケースでreturn' ... – Bergi

答えて

2

あなたの問題はここにある:

else { 
    ripeti_region(lng); 
    } 

コードのこの部分は何も返しません。

は、おそらくあなたがreturn ripeti_region(lng);

+0

しかし、私は「ripeti_region(LNG)」を実行すると、それは、同じ機能を繰り返して、必要があるので、地域(LNG)の場合!=偽の戻り値x – Borja

関連する問題