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

Java扫描程序-循环直到用户提供正确的输入[重复]

莘光华
2023-03-14
int[] t = new int[2];
Scanner scanner = new Scanner(System.in);
while (true) {
    try {
        int k = scanner.nextInt();
        System.out.println(t[k]);
        break;
    } catch (Exception e) {
        System.out.println(e);
    }
}
scanner.close();

共有1个答案

陈扬
2023-03-14

(我是在复习题目的时候琢磨出答案的,也许这能帮助到别人)

由于此指令int k=scanner.nextInt()引发了异常;此指令未完成,因此,“system.in”的“next”元素仍然相同(在示例(2)中为“a”)。因此,它会无休止地引发相同的异常。

要修复它,我只需在catch语句中添加scanner.nextLine();,这会导致程序请求新的用户输入。

 类似资料:
  • 我使用jSerialComm库和扫描仪类。当我尝试运行我的程序时,我得到以下错误: 线程“main”中出现异常Java . lang . nullpointerexception < br >位于java.io.Reader .(未知源)< br >位于java.io.InputStreamReader .(未知源)< br >位于java.util.Scanner .(未知源)< br >位于s

  • 我开发了一个字符排序器,我想每次字符串排序后提示用户输入一个新的字符串。我遇到的问题是扫描仪一直在扫描用户的第一个输入。如果我使用scanner.next(),它不会计算输入末尾的空白,这不是解决方案。 这是while循环的开始。一旦代码完成,它将再次从“inputtext”开始。

  • 问题内容: 我正在尝试编写此方法,该方法会不断从用户那里读取内容,直到输入单词“ exit”为止。我尝试了一个for和break循环;它没有用。我尝试了一段时间,但即使输入了“退出”一词也不会停止。任何想法如何解决这一问题?谢谢。 问题答案: 是错的。 你要 要么 分别取决于exit是变量还是字符串文字。在Java中,表示引用相等(例如,这两个引用指向内存中的相同地址),而。表示对象等效项,通常在

  • 我正在创建一个Java项目,使用do-while循环从用户那里获取一个介于5到15之间的数字。在此之后,我将使用用户输入的数字创建一个正方形和三角形。 我现在只能重复我的问题。在我运行程序后,它运行良好,直到我输入一个数字,第二次提示用户输入一个数字。如果号码无效或无效,则不会打印。 我试着移动第二个“输入数字...”里面的do-loop,但那只是印有“对不起,无效”的提示。我对while循环中的

  • 问题内容: 我希望重复我的代码,直到玩家正确猜出为止。 问题答案: 在此处添加- loop。这意味着您将无限次地循环问题,直到获得满意的结果。