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

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

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

我注意到的一些错误:

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

  2. 我敢打赌“无法访问的代码”是一条红鲱鱼 - 在您初始化变量后,我看不到任何不会带您进入newFibonacci 类的代码路径。

  3. 出于某种原因,您决定longmain(). 我不确定它是如何工作的——你可能在其他main地方有一些其他方法调用这个类——但你可以返回 a long,或者将方法的签名设置为void.

于 2012-12-07T02:03:06.537 回答