0

首先,我不是要求任何人做任何事情,只需要一点帮助来用布尔值修复这个错误。我放了假,但程序停止了。我有两个部分的程序。

我进行计算的第一部分:

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;最后的这部分就停止了。我希望它继续下去。

4

1 回答 1

1

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

于 2013-02-18T20:02:57.920 回答