繁体   English   中英

找不到符号(调用方法)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM