首页 > 解决方案 > 尝试调用方法时出错“无法应用于给定类型”

问题描述

我正在尝试创建一个按值调用的方法来解决斜边,同时让用户输入边。我收到此错误“java:42:错误:Hypotenuse 类中的方法斜边不能应用于给定类型;”

class Hypotenuse
{
    public static void main(String[] args)
    {   //Start bracket for main program
        double katetEn = 1.0;
        double katetTo = 1.0;
        double hyp;
        int svar;

        Scanner input = new Scanner(System.in);

        System.out.println("Dette programmet løser hypotenusen til en rettvinklet trekant"); //Let the user know the program purpose

        do
        {   //Start bracket of do loop
            System.out.println("Skriv in første katet i trekanten");    //Tell user to input the length of the first side
            katetEn = input.nextDouble();   //Set variable to users input value
                if (katetEn >= 0)   //Check that the value isn't negative
                {
                    System.out.println("Verdien du skrev inn er: " + katetEn + " Skriv inn verdien til det andre katetet:");    //Display the first side value
                }
                else    //If the value is negative, end the program with this "else"
                {
                    System.out.println("Du har skrevet inn en negativ verdi!");
                    System.exit(0);
                }
            katetTo = input.nextDouble();   //Set variable to users input value
                if (katetTo >= 0)   //Check that the value again isn't negative
                {
                    System.out.println("Verdiene du skrev inn er " + katetEn + " og " + katetTo );  //Display both values entered by the user
                }
                else    //End the program if value is negative
                {
                    System.out.println("Du har skrevet inn en negativ verdi!");
                    System.exit(0);
                }
                    System.out.println("Hypotenusen har verdien: " + hypotenuse(hyp) ); //Display the hypotenuse, given the two sides with user input values

            System.out.println("Vil du finne hypotenusen til en annen rettvinklet trekant?");   //Ask the user to continue loop or end
            System.out.println("JA = 1 / Nei = 0");                                             //Let the user know to input 1 for yes i want to continue, or 0 for no i don't
            System.out.println("Skriv inn et heltall for å svare på spørsmålet");               //Ask user for an int value to provide an answer
                svar = input.nextInt();
        }   //End bracket for do loop
        while (svar != 0);      //While statement to either continue loop, or end the program as requested.
    }                           //End bracket for main
    //Method for solving hypotenuse
    static double hypotenuse(double katetEn, double katetTo)
    {                           //Start bracket for hypotenuse method
        double hyp = Math.sqrt(Math.pow(katetEn, 2) + Math.pow(katetTo, 2));
    return hyp;
    }                           //End bracket for hypotenuse method
}   

我希望看到我的 hypotenuse(hyp) 中显示的方法的结果;但我收到错误“Hypotenuse.java:42:错误:Hypotenuse 类中的方法斜边不能应用于给定类型;” 反而

标签: javamethods

解决方案


这里:

hypotenuse(hyp);

这就是您**使用*该方法的方式。

这里:

static double hypotenuse(double katetEn, double katetTo)

是你声明它的方式。

注意:您声明它使用两个参数调用。不是一个!

换句话说:该消息告诉您您尝试在哪一行调用方法……以编译器无法理解的方式。然后你做什么:看看那条线。并将用法与声明进行比较。


推荐阅读