当前位置: 首页 > 知识库问答 >
问题:

如何让这个try-catch循环,直到它不再出错?

宗政卓
2023-03-14

我有一个try-catch块,它检查来自Scanner的输入是否为int。但它只是一次又一次地循环询问要发送多少人。。然后说错误:不是一个数字。没有实际提示用户输入不同的数字。

        int peopleToSend = 0;

        //I attempted to do a try catch... but it isn't working how I planned it...
        while(peopleToSend < 1 || peopleToSend > peopleAlive()){
            try {
                System.out.print("\nHow many people would you like to send out? 1 - " + peopleAlive() + ": ");

                peopleToSend = scan.nextInt();
            } catch (Exception e) {
                System.out.println("Error: Not a number.");
            }
        }

输入int以外的内容时的输出示例。

How many people would you like to send out? 1 - 22: Error: Not a number.

How many people would you like to send out? 1 - 22: Error: Not a number.

How many people would you like to send out? 1 - 22: Error: Not a number.

How many people would you like to send out? 1 - 22: Error: Not a number.

*loops forever*

共有2个答案

罗鸿畴
2023-03-14

只需在try块中编写while循环

陶成化
2023-03-14

添加扫描。next() 语句:

        catch (Exception e) {
            System.out.println("Error: Not a number.");
            scan.next();
        }

 类似资料:
  • 下面的代码询问用户他/她想要多少个赛车手。

  • 帮助,我对java完全陌生,我正在尝试创建一个循环,该循环将要求用户输入一个数字。如果用户输入的数字以外的任何内容,我想捕获异常并再次尝试获取正确的输入。我用一段时间循环完成了此操作,但是它不会在错误后为用户提供输入任何内容的机会,它循环了除该循环之外的所有内容。请帮助我了解什么是错的,以及正确的方法...谢谢。这就是我所拥有的:

  • 问题内容: 我试图让用户有机会在引入会产生错误但又无法正常工作的东西之后重复输入,因为一旦发现 错误, 就不会再次执行try东西,而是直接进入catch东西,生成一个永恒的东西。柱。这是我的代码: 问题答案: 输入非整数时,对的调用不会消耗非整数。您需要致电(或)使用它。就像是,

  • 问题内容: 我试图让用户有机会在引入会产生错误但又无法正常工作的东西之后重复输入,因为一旦发现 错误, 就不会再次执行try东西,而是直接进入catch东西,生成一个永恒的东西。柱。这是我的代码: 问题答案: 输入非整数时,对的调用不会消耗非整数。您需要致电(或)使用它。就像是,

  • 问题是,如果我输入一个正数(所以一切都正确),我必须输入它两次!同样,当我输入一个负数时,我需要输入两次。当我输入一个字符串时,我会得到一个“错误”,所以我想这还算不错。它是这样显示的: Bitte geben Sie die kleinste阳性Zahl des Intervalls Ein:-2 -3 -7 Bitte Geben Sie eine阳性Zahl ein 2