2017-09-13 8 views
-1

例えばを動作させない)近いスキャナ(System.in)した後、スキャナ(System.in)を作成しますが、正しく

public void a(){ 
    Scanner input = new Scanner(System.in); 
    String a = input.nextLine(); 
    .... 
    input.close(); 
} 

public void b(){ 
    Scanner scan = new Scanner(System.in); 
    int b = scan.nextInt(); 
    .... 
    scan.close(); 
} 

このスキャナは正常に動作しません。 しかし、close()を削除した後、正しく動作します。

「System.in」に問題があると思われます。

私に答えてください。

が)あなた

+ありがとうございファースト)(()で)(input.nextLineを呼び出し、その後、Bにscan.nextInt()を呼び出します。 NoSuchElementExceptionなどのエラーがあります。

+0

でそれを置き換える必要があります。*何を得るということですか? – nullpointer

答えて

0
public void b(){ 
    Scanner scan = new Scanner(System.in); 
    int b = scan.nextLine(); 
    .... 
    input.close(); 
} 

これは、input.close();であってはなりません。 b()メソッドはa()メソッドのinput変数にアクセスできません。だから、スキャナが閉じられた後、検索操作を実行しようとすると、IllegalStateExceptionがになります* scan.close()

public void b(){ 
    Scanner scan = new Scanner(System.in); 
    int b = scan.nextLine(); 
    .... 
    scan.close(); 
} 
関連する問題