非法开始表达,不知道为什么



我是一个第一年的程序员,不完全确定我在这段代码中做错了什么。拜托,有人能帮忙吗?

package ________;
public class _______  
{
    public static void main(String[] args)
    {
        public int getFactorial(int number)
        {
            if (number == 1)
            {
                System.out.println("Returned 1");
                return 1;
            }
            else
            {
                int factor = number * getFactorial(number - 1);
                System.out.println("Returned " + factor);
                return factor;
            }
        }
    }
}

每当我试图编译或运行程序时,这行都会显示一个非法的表达式开始方法:

public int getFactorial(int number)

____表示隐藏的包名和类名。使用NetBeans IDE 7.4, Java应用程序

main函数中不能有其他方法或函数。但是,您可以从主函数中调用这些函数。

请将代码写成

public static void main(String[] args)
{
    int number = 10;
    /* if you want user to input */
    Scanner get = new Scanner(System.in);
    number = get.nextInt(); // get the next integer user types :)
    getFactorial(number);
} 
public static int getFactorial(int number)
{
    int factor = 1;
    if (number == 1)
    {
        System.out.println("Returned 1");
    }
    else
    {
        factor = number * getFactorial(number - 1);
        System.out.println("Returned " + factor);
    }
    return factor;
}

这样,您的函数将在同一个类中,但在Main方法的边界之外。在main方法中,您将调用它,并且控件将转移到getFactorial函数。

你有一个方法(getFactorial)在另一个(main)。

  public static void main(String[] args){
      getFactorial(int number);
    }
  public static int getFactorial(int number)
  {
    if (number == 1)
    {
        System.out.println("Returned 1");
        return 1;
    }
    else
    {
        int factor = number * getFactorial(number - 1);
        System.out.println("Returned " + factor);
        return factor;
    }
 }

不能将一个方法写入另一个方法中。你的代码应该像这样:

package ________;
public class _______ {
    public static void main(String[] args) {
        //call getFactorial, for example
        int result = getFactorial(2);
    }
    public static int getFactorial(int number) {
        if (number == 1) {
            System.out.println("Returned 1");
            return 1;
        } else {
            int factor = number * getFactorial(number - 1);
            System.out.println("Returned " + factor);
            return factor;
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新