4 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
我假設(shè)具有一定經(jīng)驗(yàn)的典型 Java 開(kāi)發(fā)人員會(huì)做以下事情:
將返回類型更改為
double
(int
如果需要對(duì)結(jié)果進(jìn)行舍入);kilomettersPerHour < 0
當(dāng);時(shí)拋出異常將結(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個(gè)贊
在 toMilesPerHour 方法中,您不應(yīng)使用參數(shù)變量來(lái)存儲(chǔ)除法結(jié)果。相反,你應(yīng)該做類似的事情:
int?milesPerHour?=?(int)kilometersPerHour?/?1.60934
這樣您就不需要?jiǎng)?chuàng)建任何額外的變量來(lái)四舍五入您的結(jié)果。修改參數(shù)變量也是不好的做法。

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