4 回答

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

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

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個贊
您可以使用 Math.round() 獲得更準(zhǔn)確的結(jié)果。
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貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個贊
我對這段代碼最大的問題是,名字toMilesPerHour(50);
只說明了故事的一半。50什么?別讓我向內(nèi)看去弄清楚這一點(diǎn)。
不相信?好吧,現(xiàn)在我需要一種將英尺每秒轉(zhuǎn)換為英里每小時的方法。我應(yīng)該給它起什么名字才不會引起混亂?
如果您的方法掛在名KilometersPerHour
為此名稱的類型上,那就沒問題,但此名稱會使抽象失敗。我必須看看里面才能知道這意味著什么。
添加回答
舉報