我对Java非常陌生,但正在阅读“Java: How to program”(第9版)一书。并且已经达到了一个例子,在我的生活中,我无法弄清楚问题是什么。
以下是教科书中源代码示例的(略微)增强版本:
import java.util.Scanner;
public class Addition {
public static void main(String[] args) {
// creates a scanner to obtain input from a command window
Scanner input = new Scanner(System.in);
int number1; // first number to add
int number2; // second number to add
int sum; // sum of 1 & 2
System.out.print("Enter First Integer: "); // prompt
number1 = input.nextInt(); // reads first number inputted by user
System.out.print("Enter Second Integer: "); // prompt 2
number2 = input.nextInt(); // reads second number from user
sum = number1 + number2; // addition takes place, then stores the total of the two numbers in sum
System.out.printf( "Sum is %d\n", sum ); // displays the sum on screen
} // end method main
} // end class Addition我收到'NoSuchElementException‘错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at Addition.main(Addition.java:16)
Enter First Integer:我知道这可能是由于源代码中的某些东西与java.util的Scanner类不兼容,但我真的无法进一步推断问题是什么。
发布于 2012-12-06 01:54:22
枚举的nextElement方法引发的NoSuchElementException,指示枚举中不再有元素。
http://docs.oracle.com/javase/7/docs/api/java/util/NoSuchElementException.html
这样如何:
if(input.hasNextInt() )
number1 = input.nextInt(); // if there is another number
else
number1 = 0; // nothing added in the input 发布于 2012-12-06 01:53:25
在为变量赋值之前,您应该使用hasNextInt()。
发布于 2012-12-06 02:04:24
这是由于在未检查if there's any integer available的情况下调用nextInt()造成的。为了防止这种情况发生,您可以考虑使用hasNextInt()来检查是否有更多的令牌可用。
https://stackoverflow.com/questions/13729294
复制相似问题