我有一个java应用程序源代码,它得到的错误与我在这里编写代码的应用程序相同。 他们俩都得到了这个: “线程中的异常”主“java.util.NoSuchElementException” 如果我解决了这个问题,那么我可以在我的主java应用程序中解决问题。
当我运行这个java应用程序时,它运行一次,当回到do-while循环时,它会出错。 “线程中的异常”主“java.util.NoSuchElementException”
代码:
public static void main (String args[]) {
int c=-1;
Scanner input=new Scanner(System.in);
do{
System.out.println("1- Sum");
System.out.println("2- Sub");
System.out.print("Enter your selection : > ");
c=input.nextInt();
res(c);
}while(c!=0);
input.close();
}
public static void res(int c) {
switch (c) {
case 1:
System.out.println("++++++++++");
sum();
break;
case 2:
System.out.println("----------");
sub();
break;
default:
break;
}
}
public static void sum() {
float a,b,c;
Scanner in=new Scanner(System.in);
System.out.println("enter two number :");
System.out.print("first number : ");
a=in.nextInt();
System.out.print("second number : ");
b=in.nextInt();
c=a+b;
System.out.println(a+" + "+b+" = "+c+" END.");
in.close();
}
public static void sub() {
float a,b,c;
Scanner in=new Scanner(System.in);
System.out.println("enter two number :");
System.out.print("first number : ");
a=in.nextInt();
System.out.print("second number : ");
b=in.nextInt();
c=a-b;
System.out.println(a+" - "+b+" = "+c+" END.");
in.close();
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您正在关闭Scanner
和sum()
末尾的sub()
,您不应该这样做。删除这两个语句,应该修复问题。
正在发生的事情是Scanner#close()
方法也关闭了基础输入流,因此下一次通过主循环System.in
已经关闭,导致异常。
答案 1 :(得分:0)
我认为您应该为所有人打开扫描仪