2017-07-30 36 views
-5

空白错误(解决)运行时错误在Java程序重复

 System.out.println("How many elements? "); 
     int eleme = scanbud.nextInt(); 
     System.out.println(); 

解决只是这样做

System.out.println("How many elements? "); 
       int eleme = scanbud.nextInt(); 
       System.out.println(); 

我会把发生了什么照片,当我尝试运行它

as u can see.. I give one input but it gets executed twice

+2

欢迎来到Stack Overflow!它看起来像你需要学习使用调试器。请帮助一些[互补调试技术](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之后仍然遇到问题,请随时回答一个更具体的问题。 –

+1

大喊不会帮助你。 @JoeC给了你一个有用的链接,也许阅读它? –

+0

我读过它...试图调试我的程序超过一个小时 –

回答

3

很有可能您的scanbud.next()功能在读取下一个“标记”而不是下一行。尝试检查文档以查找nextLine()方法或类似方法。 (参见内置Scanner class,例如。)

从本质上讲,我怀疑Ni 3,5正在处理作为Ni随后的3,5一个输入的一个输入,由于next()功能被读取到第一空白。

一般来说,内置的Java扫描器类实际上有一些棘手的方面来正确使用它。由于nextInt()不消耗换行符(请参阅Scanner is skipping nextLine() after using next(), nextInt() or other nextFoo() methods),因此调用nextInt()后跟nextLine()可能会产生非直观的行为。如果仍有问题,请在之后尝试添加nextLine()(并忽略结果),或者更好地考虑切换到另一个类以处理输入。

+0

我使用的唯一类似的扫描仪是scanbud.next()用于字符串。我也使用scanbud.nextInt()整数 –

+0

welp它的工作(重新启动pc)......但如果我想要空白呢? –

+0

重新启动电脑可能不应该对这类Java程序有任何影响。确保每次进行更改时都要编译该程序。如果你想要整行,你需要使用'nextLine()' –