-1

課題用に作成したコードでエラーが発生し、完全に理解できません。

I:\Java Programming\FibonacciJDialog.java:19: error: variable sum might not have been initialized
        return sum;
               ^
I:\Java Programming\FibonacciJDialog.java:20: error: unreachable statement
        JOptionPane.showMessageDialog(null,"That Fibonacci Number is" ); // Display results in dialog box.
        ^
I:\Java Programming\FibonacciJDialog.java:25: error: missing return statement
    }
    ^
3 errors
Tool completed with exit code 1

コードは次のとおりです。

import javax.swing.JOptionPane;

public class FibonacciJDialog {

    public static long main(String[] args) {
        String num;
        int n;
        int sum;

        num = JOptionPane.showInputDialog("Enter n: "); // getting user number input.
        n = Integer.parseInt(num);

        Fibonacci box = new Fibonacci(); // Creating new Fibonacci object.

        JOptionPane.showMessageDialog(null, "That Fibonacci Number is"); // Display results in dialog box.
        return sum;

        System.exit(0); // Terminate

    }
}

これは私が作ったフィボナッチクラスです。

public class Fibonacci {
    int Fib(int n) {
        int in1 = 1, in2 = 1;
        int sum = 0;//initial value
        int index = 1;
        while (index < n) {
            // sum=the sum of 2 values;
            // in1 gets in2
            // in2 gets sum
            // increment index
        }
        return sum;
    }
}
4

2 に答える 2

2

sum に値を割り当てることはありません。

sum = box.fib(n);

メイン関数では、値をコンソールに出力する代わりに返します。

JOptionPane.showMessageDialog(null,"That Fibonacci Number is" + sum);
于 2012-12-06T04:14:46.343 に答える
0

私が気づいたいくつかのエラー:

  1. 値を割り当てませんsum。宣言されているだけで、初期化されていません。それがスタック トレースからわかることです。値を何かに初期化する必要があります。

  2. 「到達不能なコード」はニシンであることに賭けても構わないと思っています.変数を初期化した後new、フィボナッチクラスに移動しないコードパスは表示されません.

  3. 何らかの理由で、あなたは から戻ることにしましlongmain()。それがどのように機能するかはわかりませんmain-このクラスを呼び出す他のメソッドがどこかにある可能性があります-しかし、を返すかlong、メソッドのシグネチャをに設定できますvoid

于 2012-12-07T02:03:06.537 に答える