我是第一年的程序员,并不完全确定我在使用此代码时遇到了什么问题。拜托,有人可以帮忙吗?
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 apllication
答案 0 :(得分:1)
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;
}
这样,您的函数将位于同一个Class内,但不在Main方法的范围内。在main方法中,您将调用它以及控件将转移到getFactorial函数的位置。
答案 1 :(得分:0)
你有另一个方法(getFactorial
)(main
)。他们需要一个接一个地来。
答案 2 :(得分:0)
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;
}
}
答案 3 :(得分:0)
您无法在其他方法中编写方法。您的代码应如下所示:
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;
}
}
}