如何解决java中的NoTouchElementException

如何解决java中的NoTouchElementException,java,exception,java.util.scanner,Java,Exception,Java.util.scanner,我编写的代码如下所示: 要删除此NoTouchElementFound异常,还应包括哪些内容 我尝试过包含HasMoreElements()、HasNextInt(),但也没有成功 Scanner input=new Scanner(System.in); t=input.nextInt(); while(t>0) { int n=input.nextInt(); int a[]=new int[n]; 请尝试修改此代码,以便我不会

我编写的代码如下所示:

要删除此NoTouchElementFound异常,还应包括哪些内容

我尝试过包含HasMoreElements()、HasNextInt(),但也没有成功

Scanner input=new Scanner(System.in);
    t=input.nextInt();
    while(t>0)
    {
        int n=input.nextInt();
        int a[]=new int[n];

请尝试修改此代码,以便我不会出现此异常。

我认为您需要声明“t”

Scanner input=new Scanner(System.in);
int t=input.nextInt();
while(t>0)
{
    int n=input.nextInt();
    int a[]=new int[n];
}

抛出此异常是为了指示缓冲区中没有更多的元素,但您的代码需要一个&根据您共享的代码,预计有以下两种可能性:-

  • 变量t不是递减的:您应该添加't--'作为循环中的最后一条语句&也在您正在使用的任何continue语句之前
  • 输入本身缺少所需数量的整数:为此,可以采用Matthew或Sachin建议的任何方法。因为您声称hasNextInt()方法不起作用,所以应该更新异常/错误&您的相关代码,以便更好地了解情况

  • 希望有帮助

    此代码是否编译?
    Scanner input=新扫描仪(System.in);while(input.hasNextInt()){int n=input.nextInt();if(n>0){int a[]=new int[n];}}
            Scanner input = new Scanner(System.in);
            while(input.hasNext()){
                int n = input.nextInt();
                int a[] = new int[n];
                ...
            }