我不明白为什么会一直出现这个错误。当给定奇数中的整数列表时,该代码应该输出中间整数。末尾的负值结束输入。这行代码抛出了一个主要的异常错误,我不知道为什么。我也尝试过使用温度变量。userValues[i]=scnr.nextInt((;
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:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at LabProgram.main(LabProgram.java:16)
这是我的密码。
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int[] userValues = new int[10]; // Set of data specified by the user
int count = 0;
int temp = 0;
for (int i=0; i<10; i++)
{
if (scnr.hasNextInt());
{
userValues[i]=scnr.nextInt(); // this line is giving me the error
}
if (userValues[i]>=0)
count = count +1;
}
if (userValues[10]==0) {
int outp = count / 2 + 1;
System.out.println(userValues[outp]);
//}
else
System.out.println("Too many inputs");
}
}
-
从
If
条件中删除分号。for (int i=0; i<10; i++) { if (scnr.hasNextInt()) //remove semicolon { userValues[i]=scnr.nextInt(); error } if (userValues[i]>=0) count = count +1; }
-
数组大小为10。
-
如果您正在访问数组的第10个索引,它应该是9,否则您将得到ArrayIndexOutOfBoundsException异常
int[] userValues = new int[10]; //array size is 10 if (userValues[9]==0) { int outp = count / 2 + 1; System.out.println(userValues[outp]); }