我在为作业编写的代码中遇到了一些错误,我无法理解它们。
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;
}
}
答案 0 :(得分:2)
您永远不会为sum赋值。
sum = box.fib(n);
在主函数中,您还返回值而不是将其输出到控制台。
JOptionPane.showMessageDialog(null,"That Fibonacci Number is" + sum);
答案 1 :(得分:0)
我注意到的一些错误:
您没有为sum
分配值。它只是声明,但没有初始化。这就是堆栈跟踪告诉你的 - 你必须将值初始化为某些东西。
我愿意打赌“无法访问的代码”是一个红色的鲱鱼 - 在初始化变量之后我没有看到任何代码路径不会带你到new
你的Fibonacci类。
出于某种原因,您决定从long
返回main()
。我不确定它是如何工作的 - 您可能在其他地方调用此类的其他main
方法 - 但您可以返回long
,或将方法的签名设置为{{1 }}