m0_65160826 2021-12-11 11:47 采纳率: 100%
浏览 88
已结题

java 要求用户输入数字,捕获错误,并给用户无数次机会。正确时停止。

要求用户输入数字。如果输入错误,要求捕获错误,告知用户,给用户下一次输入的机会。直到正确为止,运行停止。(期间用户不输入任何东西,必须自动给下一次机会,且不限次数。)如果输入正确,告知用户正确,程序运行结束。

  • 写回答

4条回答 默认 最新

  • CTimet 2021-12-11 12:25
    关注

    这个简单。我们想一下,用户输入的东西会是什么
    字符串和数字
    对,这两种组合。我们要求用户输入数字,则要调用nextInt方法。可是这个方法不能接受字符串,会产生异常,所以我们需要一个try
    代码类似于这样:

    import java.util.Scanner;
    
    public class UsersInput
    {
        public static void main(String[] args)
        {
            try
            {
                Scanner in = new Scanner(System.in);
                System.out.println("请输入数字:");
                int usersInput = in.nextInt();
            } catch (NumberFormatException e) {
                
            }
        }
    }
    

    到这里,一个基础的捕获异常的机制就有了,不过,我们还需要确定如何判断用户输入正确。即输入正确数字。这个很简单。try语句没执行catch分支那么用户就算是输入了正确的数字,并且要用while实现循环,这里我们这样:

    import java.util.Scanner;
    
    public class UsersInput
    {
        public static void main(String[] args)
        {
            while (true)
            {
                try
                {
                    Scanner in = new Scanner(System.in);
                    System.out.println("请输入数字:");
                    int usersInput = in.nextInt();
                    System.out.println("输入正确!你输入了一个数字。程序结束");
                    break;//这里也可以换成System.exit(0);直接结束程序
                } catch (NumberFormatException e) {
                    System.out.println("输入错误!输入的不是数字,请继续");
                    continue;//使用continue结束此次循环,开启下次循环
                }
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分