2016-06-08 157 views
0

如果我單獨調用一個方法,它可以正常工作,但是在完成第一個方法後,如果兩個方法都被調用,java會拋出NoSuchElementException。任何人都可以expalin的理由和解決方案。這是初學者通過使用掃描儀循環創建模式的練習。如果我不使用Scanner類,這兩種方法也可以正常工作。謝謝。 真誠的新手。Java NoSuchElementException for for循環

private static void pattern1() { 
    int num = 1; 
    int limit; 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter number "); 
    limit = input.nextInt(); 
    for (int i = 0; i < limit; i++) { 
     ++num; 
     for (int j = 1; j < num; j++) { 
      System.out.print(j + " "); 
     } 
     System.out.println(); 
    } 
    input.close(); 
} 

private static void pattern2() { 
    Scanner input = new Scanner(System.in); 
    int limit; 
    System.out.print("Enter number "); 
    limit = input.nextInt(); 
    int num = limit + 1; 
    for (int i = 0; i < limit; i++) { 
     for (int j = 1; j < num; j++) { 
      System.out.print(j + " "); 
     } 
     num--; 
     System.out.println(); 
    } 
    input.close(); 
} 

回答

0

根據相同的輸入流對象(System.in)創建2個掃描儀對象。在第一種方法中,您正在關閉輸入流,因此第二個Scanner對象無法從相同的輸入對象讀取。

+0

謝謝。這是造成問題的原因。 –