# Thread: Help with Value Returning Methods

1. Member
Join Date
Feb 2011
Posts
3
Rep Power
0

## 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.

Java Code:
```import java.util.Scanner;
import java.lang.Math;
/**
This program demonstrates static methods
*/

{
{
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 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
{
choice = keyboard.nextInt();

switch (choice)
{
case 1:
System.out.print("Enter the radius of the circle:  ");
//call the circleArea method and store the result in the value variable
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:  ");
//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)?:  ");
}while (letter != 'Y' && letter != 'y');
}

private static double circleArea(double r)
{
return Math.PI*r*r;
}
}```

2. 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.

3. Member
Join Date
Sep 2010
Posts
56
Rep Power
0
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

4. Member
Join Date
Feb 2011
Posts
3
Rep Power
0
@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*

5. Member
Join Date
Feb 2011
Posts
3
Rep Power
0
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?

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•