我是一个第一年的程序员,不完全确定我在这段代码中做错了什么。拜托,有人能帮忙吗?
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;
}
}
}