0

まず第一に、ブール値でこのバグを修正するために少し助けが必要なだけです。false を入力しましたが、プログラムが停止します。プログラムには 2 つのパートがあります。

私が計算を行った最初の部分:

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);
        }
    }
}

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

while ループ内に try catch ステートメントを入れてみてください。

于 2013-02-18T20:02:57.920 に答える