I was told to use a while loop and call the nextNumber method until the input matches the corresponding fibonacci number, i.e. an input of 4 would give fib(4)=3. I'm getting fib(4)=1. Here is my code:

/**
   Class used to generate a Fibonacci number with a given input
*/
    public class FibonacciGenerator
   {
   /**
      Construct a FibonacciGenerator object to
         generate a Fibonacci number
   */
       public FibonacciGenerator()
      {
         fold1 = 1;
         fold2 = 1;
         fnew = 1;
         count = 0;
      }
   
   /**
      Method used to calculate a fibonacci number
      @return fnew the fibonacci number
   */
       public int nextNumber()
      {
         if(count < 2)
         {
         	count++;
            return 1;
         }
         else
         {
            fnew = fold1 + fold2;
         
            fold2 = fold1;
            fold1 = fnew;
         
            return fnew;
         }
      }
   
      private int fold1;
      private int fold2;
      private int count;
      private int fnew;
   }
import javax.swing.JOptionPane;
public class FibonacciGeneratorTest   
{ 

 public static void main(String[] args)
   {

    FibonacciGenerator fib;
    String fibonacci;

    int n;  
  
  while (USER DOESN'T CANCEL)
  {
    fib = new FibonacciGenerator(); 
    fibonacci  = JOptionPane.showInputDialog("Enter a Number or click Cancel to exit:"); 

    n = Integer.parseInt(fibonacci);

Any suggestions?

you could show us how you're calling nextNumber
starting from line 13 in that testclass, not really compilable, is it :)

This article has been dead for over six months. Start a new discussion instead.