用户应该通过扫描仪类输入一个整数来获取输入并检查是否有条件

时间:2015-09-25 06:25:20

标签: java input

要求:

  1. 从用户处获取输入号码。
  2. 验证给定输入是否为数字。
  3. 如果是数字,请检查Fibonacci系列并显示相同的消息。
  4. 如果输入不是数字,则显示,"请输入一个数字"并再次要求输入。
  5. 用户应该提供Q' Q'退出
  6. 如果给出了输入。执行上述过程并要求下一个输入,直到他们点击Q'。
  7. 我做了一个逻辑但是无法检查条件

    public static void main(String args[]) throws Exception {
        boolean quit = false;
        BufferedReader re = new BufferedReader(new InputStreamReader(System.in));
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a number :");
        int n;
        while (!quit) {
            if (sc.hasNextInt()) {
                n = sc.nextInt();
                while (n <= 0) {
                    System.out.println("*****Fibonacci Series*****");
                    int f1, f2 = 0, f3 = 1;
                    for (int i = 1; i <= n; i++) {
    
                        f1 = f2;
                        f2 = f3;
                        f3 = f1 + f2;
                        System.out.print(" " + f3 + " ");
                    }
                }
                quit = false;
            } else if (!sc.hasNextInt()) {
                System.out.println("That's not a number!");
                sc.next();
                quit = false;
    
            } else(sc.hasNextInt().equals("q")) {
                quit = true;
            }
        }
    }
    

    如果条件它抛出错误有.class预期

1 个答案:

答案 0 :(得分:0)

您要查找的if条件是if (sc.hasNextInt())

之后,您可以致电sc.nextInt();

整个检查可能如下所示:

        if (sc.hasNextInt()) {
            int num = sc.nextInt();
            //do something with num
        }
        else if (sc.hasNext() && ("q".equals(sc.next())) ) {
                //do something
        }

有关Scanner的详细信息,请阅读JavaDoc