Jessica M.
Jessica M.

Reputation: 1459

Cannot be resolved to a variable error in Eclipse

Trying to write a simple program that prints the Fibonacci sequence. I want to create a method named fibNumber that calculates the value of the Fibonacci sequence and then I want to use a for loop in the run() method to print that value 15 times. The trouble I'm having is the println method in the for loop. Eclipse says "n cannot be resolved to a value" and "i cannot be resolved to a value." I thought I covered all the bases in terms of declaring the variables. Am I missing something?

What I want to write is all the way up to 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);




}      

Upvotes: 1

Views: 69955

Answers (4)

Kumar Vivek Mitra
Kumar Vivek Mitra

Reputation: 33544

Try this...

- The problem here is about the scope of the variable.

- i should be declared of type int, which is local to the run() method instead of n, as n is another local variable in fibNumber() method.

- i and n are totally in different scope and are invisible to each other.

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

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

    }

Upvotes: 2

Amit Deshpande
Amit Deshpande

Reputation: 19185

You need to define i in the for loop and pass it to fibNumber

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

Upvotes: 0

Luiggi Mendoza
Luiggi Mendoza

Reputation: 85789

The problem is how you call the fibnumber method, because the n variable isn't declared anywhere in the run method context:

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

To fix it, just send the i variable:

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

Upvotes: 0

Kumar Bibek
Kumar Bibek

Reputation: 9117

Whats "n"? You should probably be using "i" instead of "n" there.

Upvotes: 0

Related Questions