Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.
当你使用Scanner类的对象时 是需要输入数据的
for (int k = 1; k <= i.length; k++) { //希望为每个人输入一次或者不输入数据
System.out.print("请输入学生" + k + "的成绩:");
Scanner sca2 = new Scanner(System.in);
int i=
if ( i>= 0 && i <= 100) {
i[k - 1] = i;
}
else {
System.out.println("请输入正确的成绩(0~100):");
int i=sca2.nextInt();
if (i>= 0 && i <= 100) {
i[k - 1] = i;
} else {
continue;
}
}
if (sca2.nextInt() >= 0 && sca2.nextInt() <= 100) {
i[k - 1] = sca2.nextInt();
原因在这里 nextInt()每调用一次就会去缓冲区里拿一次数据 所以你必须输入三次
建议换成 int input=sca2.nextInt(); 然后下面3个全部换成input 就行了