Array[i] = scnr.nextInt();导致线程"main" java.util.NoSuchElementException 中的异常



我不明白为什么会一直出现这个错误。当给定奇数中的整数列表时,该代码应该输出中间整数。末尾的负值结束输入。这行代码抛出了一个主要的异常错误,我不知道为什么。我也尝试过使用温度变量。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]);
    }
    

最新更新