這是代碼(JAVA):如果我不知道變量是否爲正數/負數,如何在不調用函數或使用if的情況下使其變爲正數?
float yd = waypointY - currentY;
if (yd < 0) {
yd = yd*(-1);
}
我不認爲這是做到這一點的最好辦法,並且已經搜查,但只發現當你已經知道,如果是陽性或陰性結果。我永遠不知道waypointY是否比currentY更多或更少。
這是代碼(JAVA):如果我不知道變量是否爲正數/負數,如何在不調用函數或使用if的情況下使其變爲正數?
float yd = waypointY - currentY;
if (yd < 0) {
yd = yd*(-1);
}
我不認爲這是做到這一點的最好辦法,並且已經搜查,但只發現當你已經知道,如果是陽性或陰性結果。我永遠不知道waypointY是否比currentY更多或更少。
AFAIK,如果沒有,這是不可能的。或者一些變化。也許得到符號位並乘以某些東西並添加一些內容並執行某些操作?這似乎太複雜了,任何特殊的原因,如果不使用?
編輯: 你可以使用一個三元(或任何它被稱爲)的表達:
x = y < 0 ? -y : y;
我只是想知道是否有更有效的方法來做到這一點。不過你的例子教會了我一些新的東西,謝謝。 :) – djokerndthief
如果使用java
,有一個API
就可以使用,Math.abs(x-y)
它將返回的絕對值x-y
並且如下ABS API的源碼:
public static float abs(float a) {
return (a <= 0.0F) ? 0.0F - a : a;
}
但這意味着調用一個函數,它本質上不比簡單的if語句更有效。正確? (我不確定) – djokerndthief
在大多數語言'if'不是一個功能。你有什麼是一個很常見的模式。我不會爲此擔心。我可能會把它改成'yd * = -1;'如果我的語言支持它的話。 – John3136