无法在Eclipse中解析为变量错误

时间:2012-10-29 06:37:53

标签: java eclipse

尝试编写一个打印Fibonacci序列的简单程序。我想创建一个名为fibNumber的方法来计算Fibonacci序列的值,然后我想在run()方法中使用for循环来打印该值15次。我遇到的麻烦是for循环中的println方法。 Eclipse说“n无法解析为值”和“我无法解析为某个值”。我认为我在声明变量方面覆盖了所有基础。我错过了什么吗?

我想写的是F15的所有内容

F0 = 0
F1 = 1
F2 = 1
F3 = 2
F4 = 3
F5 = 5

import acm.program.*;


public class FiccononicSequence extends ConsoleProgram {

public void run(){
    println("This program prints out the Fibonacci sequence.");

    for (i = 1; i <= 15; i++){

        println("F" + i + " = " + fibNumber(n));

    }




}


private int fibNumber(int n){
    if (n == 0){
    return 0; 
    }else{ if (n == 1){
    return 1;
    }else{
    return fibNumber(n - 1) + fibNumber(n - 2);




}      

4 个答案:

答案 0 :(得分:2)

试试这个......

- 此处的问题与变量scope有关。

- i应声明为int类型,本地指向run()方法而不是< / strong> nnfibNumber()方法中的另一个局部变量

- in完全处于不同的范围,彼此不可见

for (int i = 1; i <= 15; i++){

        println("F" + i + " = " + fibNumber(i));  // i should be here.

    }

答案 1 :(得分:0)

什么是“n”?您可能应该使用“i”而不是“n”。

答案 2 :(得分:0)

问题在于如何调用fibnumber方法,因为n方法上下文中的run变量未声明:

for (int i = 1; i <= 15; i++){
    println("F" + i + " = " + fibNumber(n));  //what's n?
}

要修复它,只需发送i变量:

for (int i = 1; i <= 15; i++){
    println("F" + i + " = " + fibNumber(i));  //now it compiles!
}

答案 3 :(得分:0)

您需要在for循环中定义i并将其传递给fibNumber

for (int i = 1; i <= 15; i++){<-- Define i 
    println("F" + i + " = " + fibNumber(i));<-- pass `i `
}