扫描仪提示时不设置int

时间:2016-11-25 05:12:17

标签: java

这是我的代码,我遇到了麻烦,为什么特别是当这应该相当简单时。我想提示用户输入一个数字,然后将全局声明的int设置为该数字。 "成员" int初始化为0,无论我尝试什么,当我打印成员时,即使我输入一个数字>它也会显示0 0

Scanner sc = new Scanner(System.in); // Create a scanner object
System.out.println("Enter amount of members"); // Prompt user

while (!sc.hasNextInt()) {
    sc.next();
    try {
        members = sc.nextInt(); // set entered value to members int
    } catch (Exception e) { // catch exceptions.
        System.out.println("Error please enter a number greater than 0");
        sc.nextLine(); // clear line to prevent infinite loop
    }
}

sc.nextLine(); // clear input

1 个答案:

答案 0 :(得分:-2)

sc.nextInt()sc.hasNext()用于while循环条件。

while (sc.hasNext()){
   members = reader.nextInt();
   ...
}

另外,我们不会使用sc.nextLine();清除行。

您需要详细了解如何使用扫描仪, Java Scanner Continuous User input?