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

“HasNextInt”不检测后续输入;“Nextline”放在哪里?

怀刚毅
2023-03-14

我在爪哇是全新的,这一个把我扔了。使用下面的代码,它对第一个问题进行循环,直到我输入除整数以外的任何内容,但在完成循环后,它不会对剩余的问题停止。

通过一些研究和阅读,我发现我需要使用in.nextline()在输入后使用换行符。但是,无论我把nextLine()放在哪里,它都不起作用?我认为应该在第一个int input=in.nextint()之后;但那不起作用。关于它会去哪里以及为什么要去,有什么帮助吗?

System.out.print("How many CUs per course are remaining in your degree program? Enter any letter to quit: ");
while (in.hasNextInt()) { // Verify input is an integer
    int input = in.nextInt();
    if (input <= 0) // Verify that input is not negative or zero
    {
        System.out.println("Please enter a positive number or any letter to quit");
        System.out.print("Add another course or any letter to quit: ");
    } else {
        courseCuList.add(input);
        System.out.print("Add another course or any letter to quit: ");
    }
}
System.out.print("How many CUs do you plan to take per term?");
while (in.hasNextInt()) {
    int input = in.nextInt();
    // in.nextLine(); This line consumes the \n
    if (input <= 0) {
        System.out.println("Please enter a whole positive number.");
        System.out.println("How many CUs do you plan to take per term?");
    } else {
        cuPerTerm = in.nextInt();
    }
}

共有1个答案

邹缪文
2023-03-14

你需要读两遍。

while循环的退出条件是hasNextInt()-检查下一个令牌是否是整数实际上并没有清除该令牌,这意味着下一个nextline()将读取该令牌,而下一个nextline()将读取换行符。

为了演示这一点,在循环之间放置以下内容:

System.out.println(in.nextLine() + " | " + in.nextLine());
How many CUs per course are remaining in your degree program? Enter any letter to quit: 4
Add another course or any letter to quit: 4
Add another course or any letter to quit: A
 | A
How many CUs do you plan to take per term?
in.nextLine(); in.nextLine();
 类似资料:
  • 我是Java的新手,这一次把我甩了。使用下面的代码循环第一个问题,直到我输入除整数以外的任何内容,但循环结束后,它不会停止处理剩余的问题。 通过一些研究和阅读,我发现我需要使用in.nextLine()来读取输入后的换行符。但是,无论我将nextLine()放置在何处,它都无法工作?我以为它会在第一个int input=in.nextInt()之后;但这行不通。有没有关于它会去哪里以及为什么的帮助

  • 问题内容: 在事件上使用jquery时,仅当输入失去焦点时才会触发事件 就我而言,我需要在输入值更改后立即调用该服务(检查值是否有效)。我该怎么做? 问题答案: 更新为澄清和示例 方法1。事件 在现代浏览器中使用事件。当用户在任何时候将值从一个值更改为另一个值时,都将在用户键入文本字段,粘贴,撤消操作时触发此事件。 在jQuery中这样做 从jQuery 1.7开始,替换为: 方法2。事件 对于较

  • 问题内容: 这里是新程序员。这可能是一个非常基本的问题,但这仍然让我感到困扰。 我想做的是编写一种方法,该方法仅提供一个整数输入,因此我可以在主程序中使用该输入,而不必弄乱非整数输入。但是,即使编写使用自己的方法来执行此操作的方法似乎也是有问题的。 这似乎在多个层面上都被打破了,但我不确定为什么。 如果我在首次输入时输入了0或1之类的整数值,则应该完全跳过循环。但是,相反,它进入了循环,并打印“请

  • 问题内容: 呈现组件后,将焦点设置在特定文本字段上的反应方式是什么? 文档似乎建议使用引用,例如: 在渲染函数中的输入字段上进行设置,然后调用: 但是我应该在哪里称呼它呢?我已经尝试了几个地方,但无法正常工作。 问题答案: 您应该这样做,而不是。像这样

  • 问题内容: (2013年) 我不知道为什么Python这么奇怪,您无法通过在Google中轻松搜索来找到它,但这很简单。 如何检测“ SPACE”或实际上的任何键?我怎样才能做到这一点: 这应该包含在python核心中,因此请不要链接与核心python不相关的模块。 问题答案: 您可以制作一个小Tkinter应用程序:

  • 首先为标题感到抱歉,想不出别的了。我目前正在完成一个关于JetBrains Hyperskill的项目,该项目是一个单位转换器,用户可以在其中转换重量、长度和温度单位。我几乎完成的项目,转换工作很好,但我有一个问题与用户输入。 用户输入由以下部分组成: 因此,用户可以输入如下内容: null null -要转换的数量 -这应该是像“摄氏”和“摄氏度”这样的输入 -随机单词 -这也应该读取输入,如“