我希望我的问题中的术语有一定意义,我仍然掌握它,如果它不对,那么我道歉。
所以,首先,我在前几天制作了我的第二个递归函数(我希望!)并且它可以正常工作。它输出“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的程序中,并使其在textField中输出答案。现在,该函数从'5'开始,但我想将其更改为值'n'(作为程序用户输入的值),所以我不太确定该怎么做。
我是否必须在“公共类MyProgram”下创建一个类?并使用该类中的getText获取输入的值?
任何提示或提示将不胜感激! =)
答案 0 :(得分:0)
没问题:
if (n==1) {
return 1;
}
这是递归的“停止条件”。不要改变它。
如果你想计算事实(aValue),只需用'aValue'作为参数调用fact ...
如果你有一个JTextField(我们称之为theJTextField):
ItsATextField.setText(Main.fact(Integer.parse(theJTextField.getText())));