So the code is supposed to continually give fibonacci values for any given number until you enter "q", but for some reason instead of stopping, I get an error, anyone know why? I know that if you try to parse a string, it will cause the error but I have "if(input != "q")" to stop that so why is it still happening?
Tester class:
import java.util.Scanner;
public class FibonacciTester
{
public static void main(String[] args)
{
String input = "1";
System.out.println("Input a positive integer that you want to find the fibonacci number for");
System.out.println("Type 'q' to quit");
Scanner in = new Scanner(System.in);
while (input != "q"){
System.out.print("Type in the positive integer");
input = in.next();
if(input != "q"){
int number = Integer.parseInt(input);
FibonacciV fibonacci = new FibonacciV(number);
number = FibonacciV.fibonacci(number);
System.out.println("The Fibonacci number: " + number);
}
}
}
}
Class
public class FibonacciV
{
FibonacciV(int x)
{
}
public static int fibonacci(int x)
{
if (x == 0) //Base case
{
return 0;
}
else if (x == 1) //Second base case
{
return 1;
}
else
{
return fibonacci(x-1)+ fibonacci(x-2); // recursive call
}
}
}