异常后继续 while 循环

2023-12-01

我有这段代码。我想返回到循环的开头并再次请求用户输入。然而,它总是循环不停地询问输入。我的代码有什么问题吗?谢谢

while(true){
    ... 
    try {
        int choice = input.nextInt(); <<---=- this should stop and ask for input, but it always loops without stopping.

    } catch (InputMismatchException e){
        << I want to return to the beginning of loop here >>
    }

}

From http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt%28int%29 :

“如果翻译成功,扫描仪就会前进到匹配的输入。”

啊,但是如果翻译是呢?not成功的?在这种情况下,扫描仪不会前进超过任何输入。错误的输入数据仍然是下一个要扫描的数据,因此循环的下一次迭代将像前一个迭代一样失败 - 循环将不断尝试一遍又一遍地读取相同的错误输入。

为了防止无限循环,您必须超越错误数据,以便获得扫描仪可以读取为整数的数据。下面的代码片段通过调用 input.next() 来完成此操作:

    Scanner input = new Scanner(System.in);
    while(true){
        try {
            int choice = input.nextInt();
            System.out.println("Input was " + choice);
        } catch (InputMismatchException e){
            String bad_input = input.next();
            System.out.println("Bad input: " + bad_input);
            continue;
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异常后继续 while 循环 的相关文章

  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • 是否可以在 Spring Batch 中结合分区和并行步骤?

    我只是想知道它在 Spring Batch 中可行吗 Step1Step2 流程 gt 流程1 流程2 流程3 Step3 其中每个flow1 gt 划分为 5 个 GridSizeflow2 gt 划分为 5 个 GridSizeflow
  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • java.lang.Class: 在 java 程序中初始化 log4j 属性文件时出错

    我正在尝试使用 log4j 运行独立的 java 程序 但在调试时收到以下消息 控制台上没有 log4j 相关日志 log Logger 1343 java lang Class ERROR in 18b4aac2 有人可以建议这里出了什么
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 使用 Checkstyle Plugin 时从插件调用代码时出现问题:“org.eclipse.jface”

    我正在尝试在 Rational Software Architect 7 0 0 4 上使用 eclipse cs 插件 我最近卸载了旧的 beta2 版本并安装了 beta3 插件本身按照之前的配置工作 但是每当我尝试通过 Windows
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 场景生成器删除 fxml 文件中的导入

    我使用场景构建器 Gluon Scene Builder JavaFX Scene Builder 8 1 1 来创建应用程序的 UI 并使用 Eclipse 开发 JavaFX 现在 每次我在场景生成器中保存某些内容时 它都会从 fxml
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 将 RSA 密钥从 BigIntegers 转换为SubjectPublicKeyInfo 形式

    WARNING 最初的问题是关于 PKCS 1 编码密钥 而问题中的实际示例需要SubjectPublicKeyInfo X 509 编码密钥 我目前正致力于在 java 中从头开始实现 RSA 算法 特别是密钥生成方面 现在我的代码可以给
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali

随机推荐

  • IOError: [Errno 2] 没有这样的文件或目录 Python

    我有这段代码 试图找到 vm文件 并将它们发送到另一个 我做的模块 它应该读取这些行 这是主文件 def VMTranslte fileName print FILEOVER fileName from parser import Pars
  • 了解 Object.create() 和 new SomeFunction() 之间的区别

    我最近偶然发现Object create JavaScript 中的方法 我试图推断它与创建对象的新实例有何不同new SomeFunction 以及当您想要使用其中一种而不是另一种时 考虑以下示例 var test val 1 func
  • Youtube API 违反安全沙盒

    我收到一条非常烦人的运行时错误消息 该消息使我的 Flash 应用程序在浏览器中运行时崩溃 当我尝试访问 Youtube 的 Gdata api 时 该错误与 安全沙箱违规 有关 确切的错误消息如下 Error Request for re
  • 如何通过移动设备连接到拥有多个站点的Homestead?

    我正在 Laravel 中开发一个网站 该网站在 Homestead 0 2 0 上运行 我想尝试用我的手机和平板电脑连接到它 以便我可以在这些设备上测试该网站 所以我四处搜寻 试图找出如何做到这一点 但是 我找不到任何考虑多个站点的文章
  • 如何使用 com.sun.net.httpserver.HttpsServer 要求客户端证书

    我想要求使用基于Java 1 7内置的服务器进行客户端证书身份验证HTTPS服务器 我似乎找不到任何方法使服务器无法通过身份验证 它会愉快地向任何旧客户端提供数据 无论其客户端证书是否受信任 未知或完全不存在 我对文档的阅读表明设置 Htt
  • 在C中定义结构体数组?

    main h define DATA struct data DATA int id char data main c DATA listOfData 100 所以此时我将 应该能够访问列表中的数据 如下所示 printf listOfDa
  • Node.js 17.0.1 Gatsby 错误 - “数字信封例程::不支持... ERR_OSSL_EVP_UNSUPPORTED”[重复]

    这个问题在这里已经有答案了 我正在构建一个Gatsby地点 我将 Node js 升级到v17 0 1 当我运行构建时 出现错误 Error digital envelope routines unsupported opensslErro
  • 禁用单个 JComboBox 项目

    这是一个相当常见的问题 我使用的解决方案类似于我搜索的内容后来发现 一个实现了ListCellRenderer with a JLabel根据当前选定的索引启用或禁用自身 public Component getListCellRender
  • 获取连续的字母,将每个字母转换为数字,并对组中的数字求和

    假设我有这两个相关的数组 letters a b c d e replace 1 5 10 15 20 以及一串用空格分隔的字母 text abd cde dee ae d 我想将连续的字母转换为各自的数字 将数字相加 然后用总数替换原始字
  • 防止子元素在 Flexbox 中溢出其父元素[重复]

    这个问题在这里已经有答案了 我正在开发一个网络应用程序 它显示一个大的卡片网格 其高度本质上是可变的 为了美观 我们使用了 jQuery matchHeight 使每行中的卡片高度相等 它的性能不能很好地扩展 所以今天我已经迁移到基于弹性盒
  • Codeigniter is_cli_request() 停止 cpanel cron 作业的工作

    在我的网站上 我在 cpanel 上使用 cron 作业 我在控制器的构造区域中有下面的代码 但它阻止了 cpanel cron 作业的工作 if this gt input gt is cli request show error Dir
  • spring.codeconfig 与 xml 配置

    我已经使用 spring net 进行 xml 配置一段时间了 一个月前我刚刚看到 spring 团队发布了 CodeConfig 我喜欢 xml 配置的一点是 如果实时服务器出现问题 我可以轻松更改 xml 配置以启用某些特定的调试设置
  • Windows 7 上的 WAMP 403 禁止消息

    我已经在我的 Windows 7 机器上安装了 WAMP 2 1 版 当我在浏览器中浏览到 localhost 时 可以看到 WAMP 服务器页面 但是当我在浏览器中浏览我的 IP 时 我收到消息 403 Forbidden 您无权访问此服
  • 如果我将一个重物体作为参数传递给某个函数,成本是多少

    假设我有一个对象 ClassRoom 在 ClassRoom 中有许多具有 20 多个属性的 Student 对象 50 个对象 许多具有超过 20 个属性的 Teacher 对象 10 个对象 ClassRoom 还有一些其他属性 如 c
  • preg_match() 因包含斜杠的字符串而失败

    我有一个这样的函数 function in array r item array return preg match item i json encode array 然后我像这样使用它 if in array r row name ite
  • 如何从类中获取字节码作为字节数组

    给定一个任意的Class实例 包括运行时生成的实例 没有 class磁盘上的文件 有什么方法可以获取类字节吗 一般来说 这是不可能的 加载类时 JVM 会解析其字节码并将其转换为内部表示形式 之后 JVM 可以自由地忘记原始字节码 这就是
  • YouTube API v3 Java 授权

    我正在使用 YouTube 数据 API Java 将视频上传到我的 YouTube 频道 我在我的 Windows PC 上测试了它并且成功了 但示例中的授权通过打开浏览器窗口来登录 Google 来创建 Credential 实例 这在
  • 替换空格,但仅在限制之间替换 php

    我想使用 PHP 将空格替换为另一个字符串 我这样做如下 string whatever text including some text between delimiters and string replaced preg replac
  • C++ - 从注册表读取的值中获取空值

    我的应用程序可以正确读取和写入注册表 现在 我需要从以下位置读取注册表值 HKEY LOCAL MACHINE SOFTWARE Microsoft Cryptography MachineGuid 这是我的代码 bool GetWindo
  • 异常后继续 while 循环

    我有这段代码 我想返回到循环的开头并再次请求用户输入 然而 它总是循环不停地询问输入 我的代码有什么问题吗 谢谢 while true try int choice input nextInt lt lt this should stop