[英]Can't find symbol (calling method)
在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));
}
}
第二类(将其保存为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.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(...,...),但大多数情况下,应将与类名相同的方法名称保留给构造函数方法,因此您需要查找其他名称对于那种方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.