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

为什么System.out.println“输入”出现两次?

宋建本
2023-03-14

我是编程新手,我们从学校得到了一个例子来了解扫描仪是如何工作的。我的问题是,我不明白为什么消息“Input”(while循环中的System.out.println)会被打印两次。

import java.util.Scanner;

class ScannerInput {
  public static void main(String[] args) {
    Scanner myScanner = new Scanner(System.in);

    System.out.println("Give me a String:");
    String zeichenkette = myScanner.nextLine();
    
    System.out.println("Give me an Integer:");
    int einInteger = myScanner.nextInt();

    // Output input by user
    System.out.println("String: " + zeichenkette);
    System.out.println("Integer: " + einInteger);
    
    boolean scannerSuccess = false;
    while(!scannerSuccess) {
        System.out.print("Input: ");
        if(myScanner.hasNextInt()) {
            einInteger=myScanner.nextInt();
            myScanner.nextLine();
            scannerSuccess=true;
        } else if(myScanner.hasNextLine()){
            myScanner.nextLine();
            scannerSuccess=false;
        }
    }
    
    
    myScanner.close();
  }
}

共有1个答案

凌景辉
2023-03-14
else if(myScanner.hasNextLine()){
  myScanner.next();
  scannerSuccess=false;
}

试试这个代码

 类似资料:
  • 问题内容: 这是所有编程语言所共有的吗?在进行多次打印后再执行println似乎更快,但是将所有内容移动到字符串中并仅进行打印似乎最快。为什么? 编辑:例如,Java可以在不到一秒钟的时间内找到所有高达100万的质数- 但要进行打印,然后在自己的println中将它们全部输出可能需要几分钟!最多可打印100亿小时! 例如: 问题答案: 速度并不慢,而是由主机操作系统提供的与控制台连接的基础。 您可

  • 我想5是int。但没有变数。我不知道为什么输出是双倍。我已经试过Netbeans了。

  • 问题内容: 如何为Java输出着色? 例如,在C语言和其他语言中,我可以像这样使用ANSI-escape 。但是在Java中它不起作用。 问题答案: 否,但是有第三方API可以处理 http://www.javaworld.com/javaworld/javaqa/2002-12/02-qa-1220-console.html 编辑:当然,有比我发布的文章新的文章,但是该信息仍然可行。

  • 问题内容: 当我执行以下操作时,我想知道确切的输出是什么。 我知道它提供了一些与对象有关的东西,因为我的输出是 data @ 1ae73783 。我猜 1ae73783 是一个十六进制数字。我也做了一些工作并打印 我得到了号码 415360643 。我得到一个整数值。我不知道返回什么,仍然出于好奇,当我将 1ae73783 转换为十进制时,我得到 415360643 ! 这就是为什么我对这个数字到

  • 问题内容: 当我创建一个包含反斜杠的字符串时,它们会重复: 为什么? 问题答案: 你们看到的是代表的由它的创建方法。如果您进行打印,则可以看到实际上有一个反斜杠,如您所愿: 下面的字符串中包含三个字符,而不是四个: Python在字符串中表示反斜杠,因为反斜杠是转义字符-例如,表示换行符和表示制表符。 有时这会给您带来麻烦: 当Python返回字符串的表示形式时,它将起到安全的作用,转义所有反斜杠

  • 问题内容: 当我执行以下代码时,输​​出为“ nullHelloWorld”。Java如何处理null? 问题答案: 您正在尝试将值连接到。这由“字符串转换”控制,当一个操作数是a时发生,该转换被JLS的5.1.11节覆盖: 现在只需要考虑参考值: 如果引用为null,则将其转换为字符串“ null”(四个ASCII字符n,u,l,l)。