0

我希望我在问题中的术语有一定的意义,我仍然掌握它,如果它不正确,那么我道歉。

所以,首先,前几天我做了我的第二个递归函数(我希望!)它工作得很好而且很花哨。它输出“5 x 4 x 3 x 2 x 1”,所以只是一个简单的阶乘。

 public class Main {

    public static String fact(int n) {
        if(n == 1){ //see how I made n equaled to 1? I'd like to change that to whatever value the user of the program inputs, so for ex...it could be 8
            return "1";
        }
        return n + " x " + (fact(n-1)); 
    }
    public static void main(String[] args) {
        System.out.println(fact(5)); 
       //so if it was 8 it would output "8 x 7 x 6 x ...etc. x 1"
    }

 }

private void okButtonActionPerformed(java.awt.event.ActionEvent evt) { //ok Button

        ItsATextField.setText(fact(5)); //outputs on GUI

}

但是,我已经移动了这段代码并合并到一个使用 GUI 的程序中,并使其在文本字段中输出答案。现在,该函数从“5”开始,但我想将其更改为值“n”(作为程序用户输入的值),所以我不太确定该怎么做。

我必须在“public class MyProgram”下创建一个类吗?并在该类中使用 getText 获取输入的值?

任何提示或提示将不胜感激!=)

4

1 回答 1

0

没问题:

if (n==1) {
    return 1;
}

这是递归的“停止条件”。不要改变它。

如果你想计算 fact(aValue),只需使用 'aValue' 作为参数调用 fact... 如果你有一个 JTextField(我们称之为 theJTextField): ItsATextField.setText(Main.fact(Integer.parse(theJTextField.getText())));

于 2013-06-06T18:55:06.600 回答