4 回答

TA貢獻1836條經驗 獲得超5個贊
我假設具有一定經驗的典型 Java 開發人員會做以下事情:
將返回類型更改為
double
(int
如果需要對結果進行舍入);kilomettersPerHour < 0
當;時拋出異常將結果打印在
main
.
例如,
public static double toMillesPerHour(double kilomettersPerHour) {
if (kilomettersPerHour < 0) {
throw new IllegalArgumentException("Negative value detected");
}
return kilomettersPerHour / 1.60934;
}

TA貢獻1841條經驗 獲得超3個贊
在 toMilesPerHour 方法中,您不應使用參數變量來存儲除法結果。相反,你應該做類似的事情:
int?milesPerHour?=?(int)kilometersPerHour?/?1.60934
這樣您就不需要創建任何額外的變量來四舍五入您的結果。修改參數變量也是不好的做法。

TA貢獻1936條經驗 獲得超7個贊
您可以使用 Math.round() 獲得更準確的結果。
public static void main(String[] args) {
toMillesPerHour(50);
toMillesPerHour(90);
toMillesPerHour(100);
toMillesPerHour(130);
toMillesPerHour(-20);
}
public static void toMillesPerHour(double kilomettersPerHour) {
//return round value
if(kilomettersPerHour >= 0) {
kilomettersPerHour = kilomettersPerHour / 1.60934;
int roundKm = (int) Math.round( kilomettersPerHour );
System.out.println("You travel with speed of: " + roundKm +" Miles");
}else {
System.out.println("Negative value detected");
}
}

TA貢獻1820條經驗 獲得超9個贊
我對這段代碼最大的問題是,名字toMilesPerHour(50);
只說明了故事的一半。50什么?別讓我向內看去弄清楚這一點。
不相信?好吧,現在我需要一種將英尺每秒轉換為英里每小時的方法。我應該給它起什么名字才不會引起混亂?
如果您的方法掛在名KilometersPerHour
為此名稱的類型上,那就沒問題,但此名稱會使抽象失敗。我必須看看里面才能知道這意味著什么。
添加回答
舉報