Java-加泰罗尼亚数字违法,并涉及INT问题的布尔值



我试图编写一个从用户那里获取整数值(n(的程序,检查它大于0,小于30。如果是这样,则称其为我加泰罗尼亚数字法和替换n英寸。如果输入的数字小于0或大于30

加泰罗尼亚数字方法似乎没有问题,但是当我尝试调用加泰罗尼亚数字方法并输入" n"时。所有问题都局限于开关语句,在该语句中它将不接受函数的n. equals(" quit"(,(n> 30(,(n< 0(,并且不会调用我的加泰罗尼亚数字方法。

这是我到目前为止的代码:

public class Exercise_3 {
    public static long catalan(int n) throws IllegalArgumentException {
        int res = 0;
        // Base case
        if (n <=1) {
            return 1;
        }
        for (int i = 0; i < n; i++) {
            res += catalan(i) * catalan( n - i - 1);
        }
        return res;
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Exercise_3 cn = new Exercise_3();
        System.out.println("Please enter an integer greater than 0 and less than 30 or type 'quit' to exit.");
        boolean n = scan.nextBoolean(); {
            switch(n) {
                if (n.equals("quit")) {
                    break;
                }
                else
                    case (n > 30):
                        throw IllegalArgumentException;
                        break;
                    case (n < 0):
                        throw IllegalArgumentException;
                        break;
                    case (0 < n <= 30):
                        int i = cn(n);
                        break;
            }
            System.out.println(i);
        }
    }
}

如果有人对此有任何解决方案,我将非常感激。

您在使用开关方面的方法是对此完全错误的。这不是JavaScript,您可以将承诺的结果传递给布尔值。如果您想使用Java,则必须学习解决问题的完全不同的想法。切换是您问题最糟糕的选择。用嵌套如果粘结来尝试。

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter an integer greater than 0 and less than 30 or type 'quit' to exit.");
    String input = scan.next();
    if(!input.equals("quit")) {
        int number = Integer.parseInt(input);
        if(number < 0 || number > 30) {
            throw new IllegalArgumentException("number out of range");
        }
        else {
            int i = catalan(number);
            System.out.println(i);
        }
    }
}

最新更新