为什么我的字符串值不会 return?

Why won't my string value return?

我正在尝试 运行 一个阶乘程序,该程序将输出被分解的数字及其阶乘。我使用了一个辅助方法来进行计算,并使它成为一个 String 方法。现在,当我转到 return 字符串到我的主程序时,它不起作用。我收到一条错误消息 "cannot find symbol"。我已经多次尝试重命名该变量,但它似乎无法识别它。请帮忙!

public class BigIntergerFactorial {

    public static String factorial(int x) {
        int result = 1;

        for (int n = x; n > 0; n--) {
            result = n * result;
            String Run = (x + ", " + result);

        }
        return Run;
    }
    public static void main(String[] args) {
        int x = 0;
        while (x <= 30) {
            String result1 = factorial(x);
            System.out.println(result1);
            x = x + 1;
        }

    }
}

就像现在一样,这个程序无法编译。 String Run 的范围仅限于 for 循环,而您返回循环外。

其次,我不会评论您代码的 correctness/incorrectness,因为这似乎超出了您发布的问题的范围。

这将解决从该函数返回的问题。

public static String factorial(int x) {
    int result = 1;
    String run = null;
    for (int n = x; n > 0; n--) {
        result = n * result;
        run = (x + ", " + result);
    }
    return run;
}