找不到符号(调用方法)



我是Java/编程的新手我必须编写一个递归方法来找到两个数字的最大公约数。它说当我调用该方法时找不到该符号。

   import java.util.Scanner;
public class tester121{
   public static void main(String[]args){
      Scanner input= new Scanner(System.in);
      System.out.println("Enter first number");
      int num1=input.nextInt();
      System.out.println("Enter second number");
      int num2=input.nextInt();
      System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD(num1,num2));

   } 
}

当我尝试编译它时,我得到这个 GCD.java:4: 错误:类、接口或枚举预期

public class GCD{
public static int GCD(int num1, int num2){
   if(num2==0){
   return num1;
   }
   return(GCD(num2, num1%num2));
}
}

谢谢!

GCDGCD而不是当前类中的方法,因此您需要

System.out.println("The Greatest common factor of " + num1 + " " + num2
        + " is " + GCD.GCD(num1, num2));

GCD类本身需要位于单独的文件中,才能将其声明为public

按照约定,Java 中的方法名称以小写字母开头,例如 gcd

有两种方法可以修复代码并获得所需的内容:

1)所有内容都在一个类中(称为tester121.java)

 import java.util.Scanner;
public class tester121{
   public static void main(String[]args){
      Scanner input= new Scanner(System.in);
      System.out.println("Enter first number");
      int num1=input.nextInt();
      System.out.println("Enter second number");
      int num2=input.nextInt();
      System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD(num1,num2));
   } 
public static int GCD(int num1, int num2){
   if(num2==0){
   return num1;
   }
   return(GCD(num2, num1%num2));
}
}

将此代码放在名为 tester121.java 的文件中,然后应对其进行编译。

2)两个独立类中的所有内容:头等舱:(另存为 GCD.java)

public class GCD{
public static int GCD(int num1, int num2){
   if(num2==0){
   return num1;
   }
   return(GCD(num2, num1%num2));
}
}

二等(另存为测试仪121.java)

  import java.util.Scanner;
public class tester121{
   public static void main(String[]args){
      Scanner input= new Scanner(System.in);
      System.out.println("Enter first number");
      int num1=input.nextInt();
      System.out.println("Enter second number");
      int num2=input.nextInt();
      System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD.GCD(num1,num2));

   } 
}

在第二种情况下,您需要调用GCD.GCD(num1,num2))因为该方法被声明为静态

程序中有多个错误。首先 GCD 是一个类,而不是一个方法,所以在你的主语中,

System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD(num1,num2));
这是

试图调用一个"类"并尝试用一些参数来喂养它,这是错误的。由于GCD方法是一种静态方法,因此您可以执行GCD。GCD(..., ...) 但大多数时候,应该为构造函数方法保留与类名相同的方法名称,因此您需要为该方法找到不同的名称

最新更新