布尔错误(斐波那契数字)

时间:2013-02-18 19:58:52

标签: java

首先,我不是要求任何人做任何事只需要一点帮助来修复布尔的这个bug。我把假,但程序停止。我有两个部分参与该计划。

我做计算的第一部分:

class FibonacciNumbers {

    FibonacciNumbers() {} //default constructor

    public int fOf(int n) {
        if (n == 0) //the base case
        {
            return 0;
        } else if (n == 1) {
            return 1;
        } else {
            return fOf(n - 1) + fOf(n - 2);
        }
    }
}

第二个主要方法是:

import java.util.*;
public class FibonacciNumbersTesters {

    public static void main(String[] args) {
        FibonacciNumbers fNumbers = new FibonacciNumbers();    //creates new object
        Scanner in = new Scanner(System.in);
        String again;
        String test;
        boolean IsRepeat = true;
        boolean isQuit;

        try {
            isQuit = false;
            while (!isQuit) {

                System.out.print("Enter the number you want to convert to Fibanocci('q' to quit): ");
                int n = in.nextInt();
                System.out.print("The Fibanocci number for " + n + " is: ");
                n = fNumbers.fOf(n);
                System.out.println(n);
                System.out.print("Do you want to run again? (Y or N):  ");
                again = in.next();
                if (again.equalsIgnoreCase("N")) {

                    System.out.println("Thank you! Please terminate the program by entering 'Q' or 'q' OR you can cotinue by entering anything else: ");
                    String toQuit = in.next();

                    if ((toQuit.charAt(0) == 'q') || (toQuit.charAt(0) == 'Q')) {
                        System.out.println("Good-bye!");
                        isQuit = true;

                    }
                } else {
                    IsRepeat = true;
                }
            }
        } catch (InputMismatchException ex) {

            test = in.nextLine();
            if ((test.charAt(0) == 'q') || (test.charAt(0) == 'Q')) {
                System.out.println("Good-bye!");
                isQuit = true;

            } else {
                System.out.println("Invalid input!");
                System.out.println("Try again! ");
                isQuit = false;
            }
        }
    }
}

这部分我把isQuit = false;放在最后它停止了。我希望它继续下去。

1 个答案:

答案 0 :(得分:1)

尝试将try catch语句放在while循环中。