1

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

我想写的是一直到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

4 回答 4

2

试试这个...

-这里的问题是关于scope变量

- i应该声明类型int,它是方法的本地变量,而不是方法中的另一个局部变量run()nnfibNumber()

- i并且n完全在不同的范围内,彼此不可见

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

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

    }
于 2012-10-29T07:10:39.047 回答
0

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

于 2012-10-29T06:39:47.743 回答
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!
}
于 2012-10-29T06:40:59.937 回答
0

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

for (int i = 1; i <= 15; i++){<-- Define i 
    println("F" + i + " = " + fibNumber(i));<-- pass `i `
}
于 2012-10-29T06:41:25.027 回答