0
public static void main(String args [])
{
    Scanner in = new Scanner(System.in);

    int number = 0;

    do{
        System.out.print("Which Fibonacci Number would you like? ");
        number = in.nextInt();
    }while(number < 0 || number > 71);

    System.out.printf("Fibonacci #%d is %d\n",number, fibcalc(fib));

}

 public static double fibcalc(int number)
{
    double prevNumber1 = 0;
    double prevNumber2 = 1;
    double fib = 0;

    for(int i =0; i < number; i++){
        fib = prevNumber1;
        prevNumber1 = prevNumber2;
        prevNumber2 = fib + prevNumber2;

}
    return fib;
}

上記のコードは私が持っているものです。

以下は、私が取得し続けるエラーです。

 error: cannot find symbol
 System.out.printf("Fibonacci #%d is %d\n",number, fibcalc(fib));
                                                              ^
 symbol:   variable fib
 location: class dlin_Fibonacci

見つからないと言っている fibcalc(fib)

fibメソッドからの値を返したいfibcalcので、メソッドで出力できますmain

なぜそれが私を許さないのか誰かが知っていますか?

変数のみを使用してみましたfibが、結果は同じエラー メッセージです。fibこれは、変数がクラス変数ではなくローカル変数であるという事実と関係がありますか? もしそうなら、どうやってそれをクラス変数にするのですか? 変数fibをメソッドnumberの上に移動してみました。main何かのようなもの...

private static int number = 0;
private static double fib = 0;

public static void main(String arg[])

ただし、これによりエラーが発生しましillegal start of an expressionた:変数の場合。

また、returnステートメントを正しく行っているかどうかを誰かに教えてもらえますか?

私は、動画を視聴しているさまざまなサイトに行くことについていくつかの調査を行いました。私はすべてのステップに従ったようです。ただし、メソッド内の () 内の変数である「パラメーターを渡す」ことの意味についてはまだ理解していません。その変数は他のメソッドからのものですか、それとも書かれたメソッド内で作成されただけですか? 上記の例のように、() 内に変数を記述するだけで、メソッドからメソッドに変数int numberが渡されますか?mainfibcalc

4

2 に答える 2

2

fibis not in scope since it's local to fibcalc. Change the line like this:

 System.out.printf("Fibonacci #%d is %d\n",number, fibcalc(number));
于 2012-11-21T19:52:36.597 に答える
0

これを解決するには、最初に2つの方法があります。

System.out.printf("Fibonacci #%d is %d\n",number, fibcalc((int)fib));

または2番目の方法:

public static double fibcalc(double number)

:)

于 2012-11-21T19:45:24.313 に答える