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)
我想从我的 fibcalc
方法返回 fib
的值,这样我就可以在我的 main
方法中打印它。
有人知道为什么不让我吗?
我尝试仅使用变量fib
,但结果是相同的错误消息。
这是否与变量 fib 是局部变量而不是类变量有关?如果是,那么如何使其成为类变量?
我尝试将变量 fib
和 number
移到我的 main
方法上方。类似...
private static int number = 0;
private static double fib = 0;
public static void main(String arg[])
但是,这给了我错误:变量的表达式非法开始
。
另外,有人可以告诉我 return 语句是否正确吗?
我对去不同网站观看视频进行了一些研究。看来我每一步都遵循了。但是我仍然不明白“传递参数”的含义
这是方法内 () 内部的变量。该变量是来自其他方法还是只是在所编写的方法中创建的?就像我上面的例子一样,变量int number
是否会从我的main
方法传递到我的fibcalc
方法,只需在()中声明它?
最佳答案
fib
不在范围内,因为它是 fibcalc
的本地函数。像这样更改行:
System.out.printf("Fibonacci #%d is %d\n",number, fibcalc(number));
关于java - 错误: cannot find symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13500406/