# Help with Value Returning Methods

• 02-27-2011, 02:52 AM
SoCal.SD
Help with Value Returning Methods
I'm working on a program that will calculate various mathematical problems pertaining to different shapes using formulas & user input. The problem that I am having is: writing the static method named "circleArea" that will take in the radius of the circle and return the area using the formula A=PI*Rsquared (3.14*(radius*radius)). I've added the lines in the main method to call the method but it still isn't calculating correctly. Where am I messing up at? Thanks for your support.

Code:

```import java.util.Scanner; import java.lang.Math; /**         This program demonstrates static methods */ public class Task1 {         private static void printMenu()     {                 System.out.println("This is a geometry calculator");                 System.out.println("Choose what you would like to calculate");                 System.out.println("1. Find the area of a circle");                 System.out.println("2. Find the area of a rectangle");                 System.out.println("3. Find the area of a triangle");                 System.out.println("4. Find the circumfrence of a circle");                 System.out.println("5. Find the perimeter of a rectangle");                 System.out.println("6. Find the perimeter of a triangle");                 System.out.println("Enter the number of your choice:");     }         public static void main (String [] args)         {                 int choice;                        //the user's choice                 double value = 0;        //the value returned from the method                 char letter;                //the Y or N from the user's decision to exit                 double radius;                //the radius of the circle                 double area;                //the area of the circle                 double length;                //the length of the rectangle                 double width;                //the width of the rectangle                 double height;                //the height of the triangle                 double base;                //the base of the triangle                 double side1;                //the first side of the triangle                 double side2;                //the second side of the triangle                 double side3;                //the third side of the triangle                 //create a scanner object to read from the keyboard                 Scanner keyboard = new Scanner (System.in);                                 //do loop was chose to allow the menu to be displayed first                 do                 {                         //call the printMenu method                         printMenu();                         choice = keyboard.nextInt();                                                 switch (choice)                         {                                 case 1:                                         System.out.print("Enter the radius of the circle:  ");                                         radius = keyboard.nextDouble();                                                                                                        //call the circleArea method and store the result in the value variable                                         value=circleArea(radius);                                         double area = 5.0;                                         circleArea = (3.14 * (r * r));                                                                         System.out.println("The area of the circle is " + value);                                         break;                                 case 2:                                         System.out.print("Enter the length of the rectangle:  ");                                         length = keyboard.nextDouble();                                         System.out.print("Enter the width of the rectangle:  ");                                         width = keyboard.nextDouble();                                         //call the rectangleArea method and store the result in the value variable                                         System.out.println("The area of the rectangle is " + value);                                         break;                                 case 3:                                         System.out.print("Enter the height of the triangle:  ");                                         height = keyboard.nextDouble();                                         System.out.print("Enter the base of the triangle:  ");                                         base = keyboard.nextDouble();                                         //call the triangleArea method and store the result in the value variable                                         System.out.println("The area of the triangle is " + value);                                         break;                                 case 4:                                         System.out.print("Enter the radius of the circle:  ");                                         radius = keyboard.nextDouble();                                         //call the circumference method and store the result in the value variable                                         System.out.println("The circumference of the circle is " + value);                                         break;                                 case 5:                                         System.out.print("Enter the length of the rectangle:  ");                                         length = keyboard.nextDouble();                                         System.out.print("Enter the width of the rectangle:  ");                                         width = keyboard.nextDouble();                                         //call the perimeter method and store the result in the value variable                                         System.out.println("The perimeter of the rectangle is " + value);                                         break;                                 case 6:                                         System.out.print("Enter the length of side 1 of the triangle:  ");                                         side1 = keyboard.nextDouble();                                         System.out.print("Enter the length of side 2 of the triangle:  ");                                         side2 = keyboard.nextDouble();                                         System.out.print("Enter the length of side 3 of the triangle:  ");                                         side3 = keyboard.nextDouble();                                         //call the perimeter method and store the result in the value variable                                         System.out.println("The perimeter of the triangle is " + value);                                         break;                                 default:                                         System.out.println("You did not enter a valid choice.");                         }                         keyboard.nextLine(); //consumes the new line character after the number                         System.out.println("Do you want to exit the program (Y/N)?:  ");                         String answer = keyboard.nextLine();                         letter = answer.charAt(0);                 }while (letter != 'Y' && letter != 'y');         }         private static double circleArea(double r)         {                 return Math.PI*r*r;         } }```
• 02-27-2011, 02:59 AM
Fubarable
Does this code compile? Or are there compilation errors occurring? Just quickly looking over suggests that it shouldn't and that you should see errors. If so, you really should be posting them here so we can help you knowledgeably.

If it does compile, then you should post the correct code and tell us more about what the code is or isn't doing.
• 02-27-2011, 03:07 AM
javaman1
I see two errors. One, you declared the variable "area" twice. And two, in line 55, why are setting a method equal to a double?

AB
• 02-27-2011, 04:42 AM
SoCal.SD
@Fubarable No it won't compile and run. It's saying line 67 which is: "area = 3.14159 * radius * radius;" is the error. I'm not understanding how to input the formula properly. I'm supposed to call the circleArea method and store the result in the value variable. Which included putting the formula in for the app to read. That's the only error that is displayed.

@javaman1 I see what errors you're pointing out. I was testing out a different suggestion and it didn't work. I had added "double area" to line 28 because I thought I was supposed to declare it there first. How do I fix it to recognize the formula?

*thanks for helping*
• 02-27-2011, 05:58 AM
Fubarable
get rid of any references to area, the variable. Use the circleArea method, just the method.
• 02-27-2011, 06:58 AM
SoCal.SD
Ah ok, I removed "double area = 5.0; & circleArea = (3.14 * (r * r));" and the formula worked. It appears that by establishing the circleArea method and the return math formula outside of the switch that it computed fine. Is this the method that you always use in a program such as this, or just the easiest way?