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条经验 获得超6个赞
您可以使用 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
为此名称的类型上,那就没问题,但此名称会使抽象失败。我必须看看里面才能知道这意味着什么。
添加回答
举报