0

質問の用語が意味を成していることを願っています。まだコツをつかんでいます。正しくない場合はお詫びします。

まず最初に、先日 2 番目の再帰関数を作成しました (願わくば!)、すべて正常に動作します。「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' (プログラムのユーザーが入力する値) に変更したいので、その方法がよくわかりません。

「public class MyProgram」の下にクラスを作成する必要がありますか? そして、そのクラスで getText を使用して入力された値を取得しますか?

ヒントやヒントをいただければ幸いです。=)

4

1 に答える 1

0

問題ありません:

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

それは再帰の「停止条件」です。変更しないでください。

ファクト (aValue) を計算したい場合は、「aValue」をパラメーターとしてファクトを呼び出すだけです... JTextField がある場合 (それを theJTextField と呼びましょう) : ItsATextField.setText(Main.fact(Integer.parse(theJTextField.getText())));

于 2013-06-06T18:55:06.600 に答える