Java分配有错误

时间:2012-12-06 04:09:18

标签: java

我在为作业编写的代码中遇到了一些错误,我无法理解它们。

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;
    }
}

2 个答案:

答案 0 :(得分:2)

您永远不会为sum赋值。

sum = box.fib(n);

在主函数中,您还返回值而不是将其输出到控制台。

JOptionPane.showMessageDialog(null,"That Fibonacci Number is" + sum);

答案 1 :(得分:0)

我注意到的一些错误:

  1. 您没有为sum分配值。它只是声明,但没有初始化。这就是堆栈跟踪告诉你的 - 你必须将值初始化为某些东西。

  2. 我愿意打赌“无法访问的代码”是一个红色的鲱鱼 - 在初始化变量之后我没有看到任何代码路径不会带你到new你的Fibonacci类。

  3. 出于某种原因,您决定从long返回main()。我不确定它是如何工作的 - 您可能在其他地方调用此类的其他main方法 - 但您可以返回long,或将方法的签名设置为{{1 }}