Java 程序的阶乘计算不能做 0,1,2 我该如何解决这个问题

Java Factorial Calculation for program can not do 0,1,2 How can I fix this

// Factorial Calculation
                double factorial = 1;
                factorial = firstNumber;
                for(double i = factorial-1; i > 1; i--){
                       factorial = factorial * i;
                       // Makes result equal to the firstNumber
                       result = factorial;
                     // To continue the program
                     continue;

                 }
                // Displays the result for factorial
                System.out.println("factorial of " + firstNumber + " is " + form.format(result));
                // To continue the program
                    continue;

所以我必须通过使用 switch 语句的计算器一切正常,除了当我进行阶乘计算时,如果我输入 0,1 或 2,答案总是 0,但从 3 到 10,答案总是正确的.所以 firstNumber 是用户输入的变量。阶乘是它要计算的数字我必须这样做所以当我显示我的消息时 firstNumber 等于数字而不是结果。

您的 result 可能已初始化为 0(例如 int result = 0;)。

发生的事情是,当您输入小于 3 的数字时,这意味着 factorial-1 小于 2,并且由于我们处理的是整数,这意味着不大于 1。循环的条件是 i 必须比 1 ,因此您永远不会进入循环,并且 result 从不改变其初始值价值。一个快速的解决方法是简单地将 i > 1 更改为 i > 0;反正乘以 1 也没什么坏处。

您还应该将 result 初始化为 1,因为您不会进入值 01 的循环,但这很好,因为它们的阶乘都是 1.