我是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));
}
}
谢谢!
GCD
是GCD
而不是当前类中的方法,因此您需要
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(..., ...) 但大多数时候,应该为构造函数方法保留与类名相同的方法名称,因此您需要为该方法找到不同的名称