首先,這是一個硬件分配。在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