這是我應該做的事:階乘與計數控制或定點回路中的Java
寫Java程序,它會計算一些數的階乘N(來自用戶的輸入,只接受範圍1 - 10)。對於輸入中的每個有效數字,輸出應該是n!的值。你的程序應該使用一個循環,以允許用戶輸入多個號碼(計數控制或定點控制,你的選擇)
這是我的時刻:
public static void main(String[] args)
{
Scanner console = new Scanner(System.in);
int num, result = 1;
String str;
System.out.print("Do you want to start? (y/n) ");
str = console.next();
System.out.println();
while(str.charAt(0) == 'y')
{
System.out.print("Enter an integer (1 - 10): ");
num = console.nextInt();
if(num < 1 || num > 10)
{
System.out.print("NUMBER OUT OF RANGE!");
num = console.nextInt();
}
else
{
int i = 2;
while(i <= num)
{
result = result * i;
i++;
}
System.out.println(num + "! = " + result);
System.out.println();
System.out.print("Do you want to continue? ");
str = console.next();
}
System.out.println();
}
}
但這是我的結果:
Do you want to start? (y/n) y
Enter an integer (1 - 10): 1
1! = 1
Do you want to continue? y
Enter an integer (1 - 10): 2
2! = 2
Do you want to continue? y
Enter an integer (1 - 10): 3
3! = 12
Do you want to continue? y
Enter an integer (1 - 10): 4
4! = 288
我不能輸出到顯示正確的結果,這是我與我的程序,具有唯一的問題。此外,它顯示正確的結果第一次你被要求輸入一個整數,但在此之後,一切都出錯
這既不是計數控制也不哨兵受控。 – dasblinkenlight
你正在覆蓋每個新號碼的'result'變量。所以你需要爲每次迭代設置'result = 1;'。這是錯誤 – Teocci