java - 退出 do-while 循环应用程序

标签 java loops console-application do-while

我的控制台应用程序有一点问题。应用程序应该从用户那里获取号码并将其添加到列表中,但如果输入是“c”,它应该关闭。我无法弄清楚如何在不使用 Scanner.nextLine() 挂起应用程序并退出循环的情况下验证“c”变量。

public void getNumbersFromUser() {

  Scanner scanner = new Scanner(System.in);
  int number;
  boolean flag = true;

  do{
     System.out.println("Enter a number");

     while(!scanner.hasNextInt()) {
        System.out.println("Thats not a number !");
        scanner.next();
     }
        number = scanner.nextInt();
        list.add(number);
        System.out.println(list);

  }
  while(flag);

最佳答案

一种方法是使用 Scanner.next(),它将阻止等待输入,并自行使用 Integer.parseInt() 检查输入:

List<Integer> list = new ArrayList<>();
Scanner scanner = new Scanner(System.in);

do {
    System.out.println("Enter a number");
    String next = scanner.next();
    if (next.equals("c")) {
        break;
    }

    try {
        int number = Integer.parseInt(next);
        list.add(number);
        System.out.println(list);
    } catch (NumberFormatException ex) {
        System.out.println("That's not a number !");
    }
} while (true);

关于java - 退出 do-while 循环应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55006030/

相关文章:

java - 使用 JPA 执行 VACUUM FULL

python - OpenAI Gym 在控制台环境中无法正确渲染颜色

C++检测用户何时按下箭头键

java - RuntimeException 导致 200 OK 状态

java - 我必须使用 jexcel 使用 java 中的列值对 xls 工作表行进行排序

c++ - 使用循环 *AND 交换填充的数组

c# - 遍历 BitArray 中所有可能的值组合

java - 使用近似和循环求平方根

ruby - 如何使用 Ruby 为输出到终端的文本着色?

java - 在同一实体上加入 FETCH 后 hibernate 额外查询