This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

args.length problem

 
Andrew Parker
Ranch Hand
Posts: 178
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I have the following class.
public class Hypotenuse
{
public double calcHypotenuse(double sideA, double sideB)
{
return (Math.sqrt(Math.pow (sideA, 2) + Math.pow (sideB, 2)));
}
public static void main (String args[])
{
Hypotenuse hypot;
double sideA, sideB, sideC;
if (args.length < 2) { //Don't understand why it will print out the error message as I pass args[0] and args[1] only.
System.err.println(
"Usage: java Hypotenuse <side a> <side b>");
System.exit(1);
}
sideA = Double.valueOf(args[0]).doubleValue(); //Will this assignment create a double value for sideA?
sideB = Double.valueOf(args[1]).doubleValue();
hypot = new Hypotenuse();
sideC = hypot.calcHypotenuse(sideA, sideB);
System.out.println(
"Given a triangle with two sides: " + sideA +
" and " + sideB + ", the longest side is: " + sideC);
//Why don't this result print out?
}
}

Thanks for help.
Andrew
 
jason adam
Chicken Farmer ()
Ranch Hand
Posts: 1932
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Andrew Parker:

if (args.length < 2) { //Don't understand why it will print out the error message as I pass args[0] and args[1] only.
System.err.println(
"Usage: java Hypotenuse <side a> <side b>");
System.exit(1);
}

Not sure what you are asking here. What you have is that if someone runs java Hypotenuse, and either puts no arguments or 1 argument, that error prints out (this seems to be the desired effect). 2 or more arguments causes the program to continue as normal.

sideA = Double.valueOf(args[0]).doubleValue(); //Will this assignment create a double value for sideA?
sideB = Double.valueOf(args[1]).doubleValue();


Better way to do this would be to call Double.parseDouble() on the strings instead.
Jason
 
Marilyn de Queiroz
Sheriff
Posts: 9059
12
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

If I type
java Hypotenuse 3 4
It prints
Given a triangle with two sides: 3.0 and 4.0, the longest side is: 5.0

I guess I don't understand your question.
 
Andrew Parker
Ranch Hand
Posts: 178
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am sorry. I forgot to pass the numeric parameters.
Thanks for help.
Andrew
 
Don't get me started about those stupid light bulbs.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic