import java.util.Scanner;
public class Factorial
{
public int factorial(int n)
{ if(n==1)
{
return 1;
}
while(n>1)
{
return(n*factorial(n-1));
}
}
public static void main(String[] args)
{ int fact=1;
Scanner sc=new Scanner(System.in);
System.out.println("Enter Number:");
int n=sc.nextInt();
Factorial f=new Factorial();
fact=f.factorial(n);
System.out.println("Factorial is:"+fact);
}
}
//输出:
Enter Number:
4
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type int
at Factorial.factorial(Factorial.java:5)
at Factorial.main(Factorial.java:23)
你的道路并不都被回报所覆盖;
while(n>1)
{
return(n*factorial(n-1));
}
return 1; // Add this
很简单:所有路径都需要返回。在 while 循环之后,您没有返回。
这就是全部内容。
public int factorial(int n) {
if(n <= 1) {
return 1;
}
return n * factorial(n - 1);
}