Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFo

1Exceptioninthread"main"java.util.NoSuchElementExceptionatjava.base/java.util.Scanner... 1
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at com.Eshyee.Prog.Progress.main(Progress.java:16)

package com.Eshyee.Prog;

import java.util.Scanner;

public class Progress {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.close();
Student[] a=new Student[n];
Scanner up =new Scanner(System.in);
for(int i=0;i<n;i++) {
a[i]=new Student();
a[i].name=up.next();
a[i].id=up.next();
a[i].grade=up.nextInt();

}
up.close();
for(int i=0;i<n;i++) {
System.out.println(a[i].name);
System.out.println(a[i].id);
System.out.println(a[i].grade);
}
}
}

class Student{
String name;
String id ;
int grade;

}
展开
 我来答
骑猪的骷髅
2019-07-29 · TA获得超过354个赞
知道答主
回答量:57
采纳率:42%
帮助的人:23.2万
展开全部

import java.util.Scanner;

public class Progress {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

//这里只能输入数字

int n = in.nextInt();

Student[] a = new Student[n];

Scanner up = new Scanner(System.in);

for (int i = 0; i < n; i++) {

a[i] = new Student();

a[i].name = up.next();

a[i].id = up.next();

a[i].grade = up.nextInt();

}

up.close();

in.close();

for (int i = 0; i < n; i++) {

System.out.println(a[i].name);

System.out.println(a[i].id);

System.out.println(a[i].grade);

}

}

}

class Student {

String name;

String id;

int grade;

}

这个是正确的代码,原因出在第一个scanner类你将他close()了,当调用close()后,System.in这个流将会关闭,所以也就影响到了第二个scanner了,导致不能接受数据,从而引发java.util.NoSuchElementException.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式