我对Java相当陌生,有人能帮我提高代码的效率吗?

我对Java相当陌生,有人能帮我提高代码的效率吗?,java,Java,这段代码的目标是获取关于四边形两侧的用户输入,并输出形状的周长和面积。我对Java语言非常陌生,因此,这些错误最有可能通过一两次小的编辑得到解决。如果有Java编程经验的人能帮助我,我将不胜感激:) 它很好,几乎没有错误。下面是代码的可编译版本。如果你有任何问题,请告诉我 import java.util.Scanner; public class Quadrilateral { public static void main(String[] args) {

这段代码的目标是获取关于四边形两侧的用户输入,并输出形状的周长和面积。我对Java语言非常陌生,因此,这些错误最有可能通过一两次小的编辑得到解决。如果有Java编程经验的人能帮助我,我将不胜感激:)


它很好,几乎没有错误。下面是代码的可编译版本。如果你有任何问题,请告诉我

    import java.util.Scanner;

    public class Quadrilateral {
      public static void main(String[] args) {
        double area, perimeter;
        String answer;

        Scanner ans1 = new Scanner(System.in);
        System.out.println("Is your desired shape 2-dimensional or 3-dimensional: 2d or 3d");
        answer = ans1.next();

        switch (answer) {
          case "2d":
            System.out.println("Good, you shall be allowed to continue.");
            break;

          case "3d":
            System.out.println("You are bad and should feel bad.");
            System.exit(1);
        }

        Scanner keys = new Scanner(System.in);

        System.out.print("Enter your first side length: \n");
        double side1 = keys.nextDouble();

        System.out.print("Enter your second side length: \n");
        double side2 = keys.nextDouble();

        System.out.println("The perimeter of your desired shape is: \n" + perimeter(side1, side2));
        System.out.println("The area is: \n" + area(side1, side2));

      }

      public static double area(double side1, double side2) {
        return side1 * side2;
      }

      public static double perimeter(double side1, double side2) {
        return ((2 * side1) + (2 * side2));
      }
    }

您需要了解变量的范围。您可以声明
双面积、周长
main
内部,这意味着这些变量是main的本地变量,这意味着它们不再存在于main之外的任何地方

您需要在periment方法内部声明
双周长
,然后为area返回它,反之亦然


或者,您不能在这些方法中使用变量,而只是简单地
返回side1*side2

您说您得到错误是什么?请清楚地描述错误是什么,如果您能够构建程序,请描述您如何测试它,以及观察到的和预期的输出是什么。如果需要,您可以参考
    import java.util.Scanner;

    public class Quadrilateral {
      public static void main(String[] args) {
        double area, perimeter;
        String answer;

        Scanner ans1 = new Scanner(System.in);
        System.out.println("Is your desired shape 2-dimensional or 3-dimensional: 2d or 3d");
        answer = ans1.next();

        switch (answer) {
          case "2d":
            System.out.println("Good, you shall be allowed to continue.");
            break;

          case "3d":
            System.out.println("You are bad and should feel bad.");
            System.exit(1);
        }

        Scanner keys = new Scanner(System.in);

        System.out.print("Enter your first side length: \n");
        double side1 = keys.nextDouble();

        System.out.print("Enter your second side length: \n");
        double side2 = keys.nextDouble();

        System.out.println("The perimeter of your desired shape is: \n" + perimeter(side1, side2));
        System.out.println("The area is: \n" + area(side1, side2));

      }

      public static double area(double side1, double side2) {
        return side1 * side2;
      }

      public static double perimeter(double side1, double side2) {
        return ((2 * side1) + (2 * side2));
      }
    }