为了账号安全,请及时绑定邮箱和手机立即绑定

有什么办法可以更轻松地做到这一点吗?

有什么办法可以更轻松地做到这一点吗?

达令说 2023-09-20 15:32:11
我是java新手,我的问题是......在学习java结束时我会发现有n更好的方法来做同样的事情?(我只是想加速学习过程)如果有人能给我一个更好的方法的例子,那么我可以理解我的代码。谢谢 !!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 = (int) kilomettersPerHour / 1.60934;            int roundKm = (int) kilomettersPerHour;            System.out.println("You travel with speed of: " + roundKm +" Miles");        }else {            System.out.println("Negative value detected");        }    }You travel with speed of: 31 MilesYou travel with speed of: 55 MilesYou travel with speed of: 62 MilesYou travel with speed of: 80 MilesNegative value detected
查看完整描述

4 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我假设具有一定经验的典型 Java 开发人员会做以下事情:

  1. 将返回类型更改为doubleint如果需要对结果进行舍入);

  2. kilomettersPerHour < 0当;时抛出异常

  3. 将结果打印在main.

例如,

public static double toMillesPerHour(double kilomettersPerHour) {

    if (kilomettersPerHour < 0) {

        throw new IllegalArgumentException("Negative value detected");

    }


    return kilomettersPerHour / 1.60934;

}


查看完整回答
反对 回复 2023-09-20
?
偶然的你

TA贡献1841条经验 获得超3个赞

在 toMilesPerHour 方法中,您不应使用参数变量来存储除法结果。相反,你应该做类似的事情:

int milesPerHour = (int)kilometersPerHour / 1.60934

这样您就不需要创建任何额外的变量来四舍五入您的结果。修改参数变量也是不好的做法。


查看完整回答
反对 回复 2023-09-20
?
LEATH

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");

    }

}


查看完整回答
反对 回复 2023-09-20
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

我对这段代码最大的问题是,名字toMilesPerHour(50);只说明了故事的一半。50什么?别让我向内看去弄清楚这一点。

不相信?好吧,现在我需要一种将英尺每秒转换为英里每小时的方法。我应该给它起什么名字才不会引起混乱?

如果您的方法挂在名KilometersPerHour为此名称的类型上,那就没问题,但此名称会使抽象失败。我必须看看里面才能知道这意味着什么。


查看完整回答
反对 回复 2023-09-20
  • 4 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信