![](/img/trans.png)
[英]Exception in thread “main” java.util.NoSuchElementException?
[英]Java Exception in thread java.util.NoSuchElementException
我有一個Java應用程序源代碼,它得到的錯誤與我在此處編寫代碼的應用程序相同。 他們兩個都得到這個:“線程” main“中的異常” java.util.NoSuchElementException“如果我解決了這個問題,那么我可以在我的主要Java應用程序中解決問題。
當我運行此Java應用程序時,它將運行一次,而回到do-while循環時,它將出錯。 “線程” main“中的異常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();
}
有人可以幫我解決這個問題嗎?
您將在sum()
和sub()
的末尾關閉Scanner
,您不應該這樣做。 刪除這兩個語句,問題應該得到解決。
發生的事情是Scanner#close()
方法也關閉了基礎輸入流,因此下一次通過主循環System.in
已關閉,從而導致異常。
我認為您應該一次打開掃描儀
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.