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

我是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 Miles

You travel with speed of: 55 Miles

You travel with speed of: 62 Miles

You travel with speed of: 80 Miles

Negative value detected


达令说
浏览 122回答 4
4回答

一只甜甜圈

我假设具有一定经验的典型 Java 开发人员会做以下事情:将返回类型更改为double(int如果需要对结果进行舍入);kilomettersPerHour < 0当;时抛出异常将结果打印在main.例如,public static double toMillesPerHour(double kilomettersPerHour) {&nbsp; &nbsp; if (kilomettersPerHour < 0) {&nbsp; &nbsp; &nbsp; &nbsp; throw new IllegalArgumentException("Negative value detected");&nbsp; &nbsp; }&nbsp; &nbsp; return kilomettersPerHour / 1.60934;}

偶然的你

在 toMilesPerHour 方法中,您不应使用参数变量来存储除法结果。相反,你应该做类似的事情:int milesPerHour = (int)kilometersPerHour / 1.60934这样您就不需要创建任何额外的变量来四舍五入您的结果。修改参数变量也是不好的做法。

LEATH

您可以使用 Math.round() 获得更准确的结果。public static void main(String[] args) {&nbsp; &nbsp; toMillesPerHour(50);&nbsp; &nbsp; toMillesPerHour(90);&nbsp; &nbsp; toMillesPerHour(100);&nbsp; &nbsp; toMillesPerHour(130);&nbsp; &nbsp; toMillesPerHour(-20);}public static void toMillesPerHour(double kilomettersPerHour) {&nbsp; &nbsp; //return round value&nbsp; &nbsp; if(kilomettersPerHour >= 0) {&nbsp; &nbsp; &nbsp; &nbsp; kilomettersPerHour = kilomettersPerHour / 1.60934;&nbsp; &nbsp; &nbsp; &nbsp; int roundKm = (int) Math.round( kilomettersPerHour );&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("You travel with speed of: " + roundKm +" Miles");&nbsp; &nbsp; }else {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Negative value detected");&nbsp; &nbsp; }}

慕妹3146593

我对这段代码最大的问题是,名字toMilesPerHour(50);只说明了故事的一半。50什么?别让我向内看去弄清楚这一点。不相信?好吧,现在我需要一种将英尺每秒转换为英里每小时的方法。我应该给它起什么名字才不会引起混乱?如果您的方法挂在名KilometersPerHour为此名称的类型上,那就没问题,但此名称会使抽象失败。我必须看看里面才能知道这意味着什么。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java