2016-11-15 6 views
0

これは、コード(Java)のである:私は、これはそれを行うための最善の方法だとは思わない変数が肯定/否定であるかどうかわからない場合は、関数を呼び出したりifを使用したりせずに肯定的にするにはどうすればよいですか?

float yd = waypointY - currentY; 
    if (yd < 0) { 
     yd = yd*(-1); 
    } 

、および検索だけ、それは正または負だ場合、あなたが既に知っているときの結果を発見しました。私はwaypointYが現在よりも多かれ少なかれわからない。

+1

'if'関数ではありません。あなたが持っているものはかなり一般的なパターンです。私はそれについてあまり心配しないだろう。私の言語がそれをサポートしていれば、それを 'yd * = -1;'に変更するかもしれません。 – John3136

答えて

0

AFAIK、これがなければ不可能です。または。たぶんサインビットを取得し、何かを掛けて何かを加えて何かをしますか?これはあまりにも複雑すぎるように思えますが、使用しない特定の理由はありますか?

編集: あなたは三元(または何でもそれが呼ばれています)の式を使用できます:あなたはjavaを使用する場合は、あなたが使用することができますAPIがある

x = y < 0 ? -y : y; 
+0

もっと効果的な方法があるのか​​どうか疑問に思いました。しかし、あなたの例は私に何か新しいことを教えてくれました。 :) – djokerndthief

2

を、Math.abs(x-y)それはの絶対値を返します。 x-yと以下のように腹筋APIのソースコード:ほとんどの言語で

public static float abs(float a) { 
    return (a <= 0.0F) ? 0.0F - a : a; 
} 
+0

しかし、これは本質的に単純なif文よりも効果的ではない関数を呼び出すことを意味します。正しい? (私は確信していない) – djokerndthief

関連する問題