2017-09-03 34 views
-2
Scanner sc=new Scanner(System.in); 
    int k=sc.nextInt(); 
    sc.nextLine(); 
    while(k-->0) 
    { 
     boolean t =false; 
     int n=sc.nextInt(); 
     int l=sc.nextInt(); 

     int i,j,m; 
     int a[]= new int[n]; 
     for(i=0;i<n;i++) 
     { 
      a[i]=sc.nextInt(); 

     } 
     for(i=0;i<n-2;i++) 
     { 
      for(j=i+1;j<n-1;j++) 
      { 
       for(k=j+1;k<n;k++) 
       { 
        if((a[i]+a[j]+a[k])==l) 
        { 
         t=true; 
         break; 
        } 
       } 
      } 
     } 
    String f= t?"true":"false"; 
      System.out.println(f); 
    } 
    sc.close(); 

異常線程 「main」java.util.NoSuchElementException

java.util.NoSuchElementException 
at java.util.Scanner.throwFor(Scanner.java:907) 
at java.util.Scanner.next(Scanner.java:1530) 
at java.util.Scanner.nextInt(Scanner.java:2160) 
at java.util.Scanner.nextInt(Scanner.java:2119) 
at Solution.main(Solution.java:17) 

採樣輸入

3 
5 60 
1 20 40 100 80 

樣本輸出虛假

什麼我試過嗎?

if(sc.hasNextInt()) 
n=sc.nextInt(); 
if(sc.hasNextInt()) 
l=sc.nextInt(); 

對於假定的hasNextInt()修復,我得到了更多的重複輸出(即false)。

+0

你通過你的代碼在你的IDE調試步驟,看看它實際上是做什麼的?請這樣做,這對你來說會更具教育意義。如果你這樣做,但仍然不明白,那麼請正確解釋你在調試時發現了什麼,以及你不瞭解什麼。 –

回答

-1

把一個迭代的開始,併爲您病情是這樣的:

do { 
//Here the code 
} while (i.hasNextInt()); 

和掃描儀的錯誤,你應該檢查一下掃描儀有一個這樣的

Scanner sc =new Scanner(System.in); 
if (sc.hasNext()) { 
//here the code 
} 
0
3 
5 60 
1 20 40 100 80 
false 

這是我在運行你的代碼後得到的。我猜你的代碼是正確的。但是你沒有給它輸入。

java.util.NoSuchElementException當掃描儀找不到您要求它讀取的內容時拋出。

給出完全正確的輸入。

0

看來您已經在代碼中關閉了掃描儀。不要關閉它&在程序中重新實例化它,而是在主程序開始時將其初始化一次&在主程序結束時關閉它。

掃描儀由於其資源關閉而關閉,因爲它實現了 可關閉的界面。

就像下面的例子 -

public static void main(String[] args) throws IOException { 
     Scanner scanner = new Scanner(System.in); 
     System.out.println(System.in.available()); 
     scanner.close(); 
     scanner = new Scanner(System.in); 
     // System.out.println(System.in.available()); 
     // If you uncomment above: It will give you java.io.IOException: Stream closed 
     String str = scanner.nextLine(); 
    } 

派生而來,這個答案從崗位:java.util.NoSuchElementException - Scanner reading user input

相關問題