2016-06-08 5 views
0

메서드를 별도로 호출하면 제대로 작동하지만 두 메서드가 호출 된 경우 첫 번째 메서드 완료 후 NoSuchElementException이 throw됩니다. 누구든지 expalin 그 이유와 해결책을 주시기 바랍니다 수 있습니다. 이것은 스캐너를 사용하여 for 루프를 통해 패턴을 만드는 초보자 연습입니다. 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 개체를 만듭니다. 첫 번째 메소드에서는 입력 스트림을 닫으므로 두 번째 Scanner 객체는 동일한 입력 객체에서 읽을 수 없습니다.

+0

감사합니다. 이것은 문제를 일으키는 것입니다. –