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?