我写的是Java中非常简单的计算器,但我在这段代码中遇到了问题:
import java.util.Scanner;
public class Operation extends Declaration {
public static void main(String[] args){
int w = 0;
Scanner scan=new Scanner(System.in);
for(int i=0;i<1;){
System.out.println("WYBIERZ RODZAJ DZIALANIA: ");
System.out.println("1- DODAWANIE");
System.out.println("2- ODEJMOWANIE");
System.out.println("3- MNOZENIE");
System.out.println("4- DZIELENIE");
input=scan.next();
if(validate(input)){
m = Integer.parseInt(input);
if(m > 0 && m < 5){
i++;
} else {
System.out.println("Podaj liczbe w zakresie 1-4. ");
}
}
else{
System.out.println("Niestety, podana wartosc nie jest liczba calkowita. ");
}
}
}
}
不幸的是我收到了错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at Operation.main(Operation.java:15)
at Calculator.main(Calculator.java:5)
请帮忙。
答案 0 :(得分:0)
错误消息说明了:
Exception in thread "main" java.util.NoSuchElementException
..
at java.util.Scanner.next(Unknown Source)
如果我们阅读documentation of the Exception,则说明(我的大胆重点):
由枚举的nextElement方法抛出,表示枚举中有不再有元素。
如果我们假设输入已被正确声明,则错误仍在此行中:
input=scan.next();
没有下一个元素。之前调用hasNext(),以确保实际存在下一个元素。
答案 1 :(得分:0)
您尚未在代码中声明变量输入。
并且用字符串input
写这样的东西,
String input=scan.nextLine();
用于将整数作为输入写入:
int input=scan.nextInt();
其中scan是您的扫描仪对象
答案 2 :(得分:0)
Operation类中的第15行是:input=scan.next();
该方法的文档页面,假设声明了变量(否则会出现编译错误)是:http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next%28%29。
当没有可用的令牌时,抛出NoSuchElementException。您必须致电hasNext()
来更正您的计划。