このプログラムで静的メソッドを使用する方法がわかりません。私は0から10までの数の階乗を計算するプログラムをコーディングしています。ユーザーは数値を入力することができ、プログラムは階乗を計算する必要があります。 私はもともと主要なコードがすべて入っている関数型プログラムを書いていました。次に、私が静的メソッドで階乗を得るための計算を置くことになっていたことに気付いた代入ルックアップを二重チェックしました。私は自分の問題が私が電卓に送信しない番号を入力するようユーザーに求めているところの底に向かっていると信じています。私はそれがどのように行われているかわからないと思います。私は新しいので、私は貧しいコーディングのために謝罪し、私はどんな助けにも感謝します。あなたは結果を印刷する直前に静的メソッドを使用して
import java.util.Scanner; //import scanner class
public class FactorialCalculator {
public static long calculator(long fact, int num) {
for(int i = 1; i<=num; i++) {
fact *= i;
}
return fact;
}
public static void main(String[] args) {
Scanner calc = new Scanner(System.in); //create new scanner calc
int num = 0;
long fact = 1;
//welcome user to the Factorial Calculator
System.out.println("Welcome to the Factorial Calculator.");
System.out.println();
String choice = "y";
while (choice.equalsIgnoreCase("y")) {
System.out.println("Please enter an integer that's greater than 0 and less than 10: ");
num = calc.nextInt();
System.out.println("The Factorial for " + num + " is " + fact +".");
System.out.println();
System.out.println("Would you like to continue? y/n");
choice = calc.next();
System.out.println();
}
}
}
副詞として、階乗を計算するメソッドは、1つの入力パラメータを必要とするだけです。最初のパラメータを取り除き、メソッドで初期化します。 –
@MichaelBurrこれは、 'fact'がループ間でリセットされていないので、実行する必要があります。事実は電卓のメソッド 'long fact = 1;'と 'main()'で宣言しなければならないことに留意してください。 – Hawken
'static'メソッドは同じクラスから別の静的メソッドだけを呼び出すことができます。あなたの 'main'メソッドは静的ですので、' calculator'を呼び出す場合は静的でなければなりません。静的キーワード[here](http://tinyurl.com/76lr6un)または[this](http://tinyurl.com/8yjq7fg)の投稿を参照できます。 –