在下面的代码片段中,Scanner声明后紧接着的System.out.print语句给出了奇怪的结果。它似乎执行了两次。我已经调试过了,在执行print语句之后,立即在标准输出中得到以下内容:
运行: 输入一个二进制数字:输入一个二进制数字:
我添加了“freaking”以验证它是否在我不知道的情况下进入while循环打印。
供您参考,这是在64位vista机器上使用64位JDK的netbeans IDE 6.7.1中执行的。希望您能看到我的错误!
谢谢!
编辑:当在命令行上执行Netbeans生成的JAR文件时,该语句只会打印一次。有没有遇到这种奇怪行为的Netbeans用户,可能知道我如何防止这种情况发生。我讨厌在开发周期中在IDE之外工作。
运行: 输入一个二进制数字:输入一个二进制数字:
我添加了“freaking”以验证它是否在我不知道的情况下进入while循环打印。
供您参考,这是在64位vista机器上使用64位JDK的netbeans IDE 6.7.1中执行的。希望您能看到我的错误!
谢谢!
编辑:当在命令行上执行Netbeans生成的JAR文件时,该语句只会打印一次。有没有遇到这种奇怪行为的Netbeans用户,可能知道我如何防止这种情况发生。我讨厌在开发周期中在IDE之外工作。
private void getInput()
{
Scanner scanner = new Scanner(System.in);
System.out.print("Input a freaking binary number: ");
// Grab the next inputed long and save it in the currentValueInBinary
// member variable
setCurrentValueInBinary(scanner.nextLong());
// Loop until a valid binary number is retrieved
while (!isNumberBinary(currentValueInBinary))
{ // Input was negative, report error and re-request input
System.out.println("Input must be a Binary value");
System.out.print("\nInput a binary number: ");
setCurrentValueInBinary(scanner.nextLong());
}
}