1

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

4 Answers 4

2

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

try

java Planet 1
Sign up to request clarification or add additional context in comments.

3 Comments

You mean java Planet 1? Java is rarely compiled into exe.
Thanks Fredrik.....i gave 'java EnumPlanet 75 ' from the command prompt ..i got the expected ouput.....but can you tell me how will we give it from Eclipse IDE ...?
I got it Fredrik...we can pass the Argument value (eg :75 ) in 'Run Configurations'
2

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

Comments

2

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.

Comments

0

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.

2 Comments

The argument is how much you weight on earth, not the planet number.
@MarvinLabs : you're totally right, I misread, thanks for correcting my answer :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.