首先,这是一个硬件分配。在Java中遇到递归阶乘问题。我在这里和其他地方发现的一切都已经告诉我,我所做的是正确的。但是,我遇到了额外的问题。基本上我需要的是1)用户输入一个数字2)要计算的因子3)如果用户输入任何字符或字符串(而不是一个int)的错误消息出来4)要重复的问题用户输入“0”退出。递归因子Java
步骤1和2我已完成。我遇到了第3步的问题。似乎我缺少一个返回语句,如果用户输入了任何东西,但是我似乎无法弄清楚究竟是什么。
这里是代码至今:
import java.util.Scanner;
public class Recursive
{
public static void main(String[] args)
{
int number; // To hold a number
char letter; // To hold a character
//Create a Scanner object for keyboard input
Scanner keyboard = new Scanner(System.in);
//Get a number from the user
System.out.print("Enter an integer to find the factorial: ");
number = keyboard.nextInt();
//Display the factorial
System.out.println(number + "! is " + factorial(number));
}
private static int factorial(int n)
{
if (n == 0)
return 1; // Base Case
else if (n > 0)
return n * factorial(n-1);
else (!(n>0))
return
System.out.println(number + "is invalid");
}
}
所以围绕'keyboard.nextInt()递归阶乘的解决方案;'用'尝试/ catch'声明,你知道,如果它得到了他们没有进入一个int例外。 – 3kings
由于这是你的硬件,我不会发布实际答案。但会给你一些提示。你将需要一个持续的循环。然后if/else语句。如果用户输入0,则不打断循环。然后通过用try/catch块包围用户输入来检查numberformatexception。在catch块中,输入错误消息。这应该会帮助你。 – user109260
在我看来,你的问题与阶乘计算无关,问题标题和阶乘代码只是噪音。请修改您的问题以澄清您实际要求的内容。 – Giewev