使用枚举进行编程

发布于 2024-10-12 23:41:45 字数 1725 浏览 4 评论 0原文

我正在尝试 Java 教程中的一个示例程序,使用枚举。我无法获得代码的正确输出。我认为问题出在我对代码的理解上。任何人都可以帮助我正确解释它。我理解了大部分代码,但想确认使用程序中的以下代码:

if (args.length != 1) 
{
System.err.println("Usage:  java Planet <earth_weight>");
System.exit(-1);
}

我的输出是:

Usage:  java Planet <earth_weight>

以下是我的代码:

public enum EnumPlanet {

    MERCURY (3.303e+23, 2.4397e6),
    VENUS   (4.869e+24, 6.0518e6),
    EARTH   (5.976e+24, 6.37814e6),
    MARS    (6.421e+23, 3.3972e6),
    JUPITER (1.9e+27,   7.1492e7),
    SATURN  (5.688e+26, 6.0268e7),
    URANUS  (8.686e+25, 2.5559e7),
    NEPTUNE (1.024e+26, 2.4746e7);

    private final double mass;   // in kilograms
    private final double radius; // in meters
    EnumPlanet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }
    private double mass()   { return mass; }
    private double radius() { return radius; }

    // universal gravitational constant  (m3 kg-1 s-2)
    public static final double G = 6.67300E-11;

    double surfaceGravity() {
        return G * mass / (radius * radius);
    }
    double surfaceWeight(double otherMass) {
        return otherMass * surfaceGravity();
    }
    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("Usage:  java Planet <earth_weight>");
            System.exit(-1);
        }
        double earthWeight = Double.parseDouble(args[0]);
        double mass = earthWeight/EARTH.surfaceGravity();
        for (EnumPlanet p : EnumPlanet.values())
           System.out.printf("Your weight on %s is %f%n",
                             p, p.surfaceWeight(mass));
    }
}

I was trying out a sample program from Java tutorials,using enum. I was not able to get a correct output for the code.I think the problem is with my understanding of the code.Can anyone please help me to interpret it correctly.I understood most of the code,but would like to confirm the use of following piece of code in the program :

if (args.length != 1) 
{
System.err.println("Usage:  java Planet <earth_weight>");
System.exit(-1);
}

My output is :

Usage:  java Planet <earth_weight>

Following is my code:

public enum EnumPlanet {

    MERCURY (3.303e+23, 2.4397e6),
    VENUS   (4.869e+24, 6.0518e6),
    EARTH   (5.976e+24, 6.37814e6),
    MARS    (6.421e+23, 3.3972e6),
    JUPITER (1.9e+27,   7.1492e7),
    SATURN  (5.688e+26, 6.0268e7),
    URANUS  (8.686e+25, 2.5559e7),
    NEPTUNE (1.024e+26, 2.4746e7);

    private final double mass;   // in kilograms
    private final double radius; // in meters
    EnumPlanet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }
    private double mass()   { return mass; }
    private double radius() { return radius; }

    // universal gravitational constant  (m3 kg-1 s-2)
    public static final double G = 6.67300E-11;

    double surfaceGravity() {
        return G * mass / (radius * radius);
    }
    double surfaceWeight(double otherMass) {
        return otherMass * surfaceGravity();
    }
    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("Usage:  java Planet <earth_weight>");
            System.exit(-1);
        }
        double earthWeight = Double.parseDouble(args[0]);
        double mass = earthWeight/EARTH.surfaceGravity();
        for (EnumPlanet p : EnumPlanet.values())
           System.out.printf("Your weight on %s is %f%n",
                             p, p.surfaceWeight(mass));
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

聽兲甴掵 2024-10-19 23:41:45

您得到此输出是因为您没有提供正确数量的参数。

尝试

java Planet 1

You get this output because you are not supplying the right amount of arguments.

try

java Planet 1
无法回应 2024-10-19 23:41:45

你需要提供一个论据来说明地球上的重量。假设这是 71.5 公斤。然后你需要运行该程序

java Planet 71.5

You need to supply an argument saying the weight on earth. Suppose this was 71.5 kg. Then you need to run the program with

java Planet 71.5
爱人如己 2024-10-19 23:41:45

您需要在程序命令行中给出您的体重(以千克为单位)。例如:java.exe Planet 75(假设您的体重为 75 公斤)。输出将是根据其他行星的引力,您在其他行星上的重量。

You need to give your weight in kilograms in the program command line. eg: java.exe Planet 75 (assuming you weight 75 kilograms). The output will be how much you would weight on other planets according to their gravity.

妄想挽回 2024-10-19 23:41:45

你需要提供一个论据,即你在地球上的重量。

否则,您有多个不同于 1 的参数,并且您的程序会输出帮助。

You need to provide an argument, which is your weight on earth.

Else, you have a number of argument different from 1 and your program outputs the help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文