方法中的参数

时间:2016-02-22 20:37:54

标签: java eclipse

我今天开始使用方法&我遇到了一个错误,即主方法中的一个方程式并不适用于整个程序。它是第四行代码&我以为它输入正确。基本上,当你输入长度&宽度,您将获得矩形区域作为输出。这是代码:

double area = areaOfRectangle();
    String YES = "Y";
    String YES2 = "y";
    String NO = "N";
    String NO2 = "n";
    boolean validInput = false;

    System.out.print("Please enter a length: ");
    float length = input.nextInt();
    System.out.print("Please enter a width: ");
    float width = input.nextInt();

    System.out.printf("Area: %.2d %n", area);

    do{
    System.out.print("Enter more? (Y/N): ");
    String input2 = input.next();
    if(input.hasNextLine()){
        if(input2.equals("Y") || input2.equals("y")){
            System.out.print("Please enter a length: ");
            length = input.nextFloat();
            System.out.print("Please enter a width: ");
            width = input.nextFloat();

            System.out.printf("Area: %.2d %n", area);
        }
        else if(input2.equals("N") || input2.equals("n")){
            System.exit(1);
        }
    }
}while(!validInput);
}

public static void areaOfRectangle(float length2, float width2){

        length2 = length;
        width2 = width;

        double rectangle = (length2 * width2);
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:3)

你有

 double area = areaOfRectangle();

 public static void areaOfRectangle(float length2, float width2){

所以你有一个返回void(没有)的方法,由于你没有返回任何内容而编译,但是你试图将它分配给double。而且,你根本没有传递参数。在java中,您不能像在函数式语言中那样为变量赋值。

你需要:

public static double areaOfRectangle(float length2, float width2){

    double rectangle = (double)length2 * width2;
    return rectangle;
}

然后在有参数时计算面积:

double area = areaOfRectangle(length,width);

也许不要在float和double之间进行转换,只需使用双打。