用Java中的多种方法计算几何图形的面积

用Java中的多种方法计算几何图形的面积,java,eclipse,methods,Java,Eclipse,Methods,我的程序将计算面积,但我需要在它自己的方法中有每个不同的形状,我很难理解如何首先将它们分离到它们自己的方法中,并将它们连接在一起。非常感谢您的帮助 import java.util.Scanner; public class Project4 { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); String s = "Please ch

我的程序将计算面积,但我需要在它自己的方法中有每个不同的形状,我很难理解如何首先将它们分离到它们自己的方法中,并将它们连接在一起。非常感谢您的帮助

import java.util.Scanner;
public class Project4 {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        String s = "Please choose which area/volume to calculate: 1-Circle 2-Triangle 3-Cone 4-Cylinder 5-Sphere 6-Quit: ";
        System.out.print(s);
        System.out.println(" ");
        int num = keyboard.nextInt();
        if (num < 1 || num > 6){
            System.out.print("Please choose a number between 1 and 6: ");
            num = keyboard.nextInt();
        }
        if(num == 1){
            System.out.print("Please enter the radius: ");
            double r = keyboard.nextDouble();
            double a;
            a = 3.14 * r * r;
            System.out.print("The area of the circle is: " + a);
            System.out.println(" ");
            System.out.print(s);
            num = keyboard.nextInt();
        }
        if(num == 2){
            System.out.print("Please enter the base: ");
            double b = keyboard.nextDouble();
            double at;
            System.out.print("Please enter the height: ");
            double h = keyboard.nextDouble();
            at = .5 * b * h;
            System.out.print("The area of the triangle is: " + at);
            System.out.println(" ");
            System.out.print(s);
            num = keyboard.nextInt();
        }
        if(num == 3){
            System.out.print("Please enter the radius: ");
            double r = keyboard.nextDouble();
            System.out.print("Please enter the height: ");
            double h = keyboard.nextDouble();
            double v1;
            v1 = (1/3) * 3.14 * r * r * h;
            System.out.print("The volume of the cone is: " + v1);
            System.out.println(" ");
            System.out.print(s);
            num = keyboard.nextInt();
        }
        if(num == 4){
            System.out.print("Please enter the radius: ");
            double r = keyboard.nextDouble();
            System.out.print("Please enter the height: ");
            double h = keyboard.nextDouble();
            double vc;
            vc = 3.14 * r * r * h;
            System.out.print("The volume of the cylinder is: " + vc);
            System.out.println(" ");
            System.out.print(s);
            num = keyboard.nextInt();
        }
        if(num == 5){
            System.out.print("Please enter the radius: ");
            double r = keyboard.nextDouble();
            double vs;
            vs = (4/3) * 3.14 * r * r * r;
            System.out.print("The volume of the sphere is: " + vs);
            System.out.println(" ");
            System.out.print(s);
            num = keyboard.nextInt();
        }
        if(num == 6){
            System.out.print("Thank you for using this program");
        }

}
}

您可以使用switch..case

switch(num) {
  case 1: calculateCircleArea();
          break;
  case 2: calculateTriangleArea();
          break;
  case 3: calculateConeVolume();
          break;
  case 4: calculateCylinderVolume();
          break;
  case 5: calculateSphereVolume();
          break;
  case 6: System.out.print("Thank you for using this program");
          break;
  default: System.out.print("Please choose a number between 1 and 6: ");
           break;
}

您可以创建新的私有/公共方法来进行计算并将它们分开

接受这一部分

if(num == 1){
    System.out.print("Please enter the radius: ");
    double r = keyboard.nextDouble();
    double a;
    a = 3.14 * r * r;
    System.out.print("The area of the circle is: " + a);
    System.out.println(" ");
    System.out.print(s);
    num = keyboard.nextInt();
}
您可以创建一个新的计算方法,如下所示

public static double getArea(double radius)
{
return 3.14*radius*radius;
}
然后,在你的if语句中,你可以说

if(num == 1){
        System.out.print("Please enter the radius: ");
        double r = keyboard.nextDouble();
        double a;
        a = getArea(r);
        System.out.print("The area of the circle is: " + a);
        System.out.println(" ");
        System.out.print(s);
        num = keyboard.nextInt();
    }
你看,在这个例子中,你得到了一个单行方法,它不是很有用。但是你也可以进行更广泛的计算,这只是一个例子。此外,您可以使用switch语句代替所有if块,就像其他答案所示