2017-07-31 22 views
-2
public static void main(String args[]) { /* problem*/ 
     Scanner scan=new Scanner (System.in);  
     int a; // problem// 
     System.out.println("a nedir"); 
     a=scan.nextInt(); 
} 
+0

申し訳ありません。番号の代わりに文字を入力すると、プログラムがクラッシュします。 – WarMasterFurkan

+3

あなたの問題は不明です(int eccでないとどうなるでしょうか)。もしあなたが検索したら、おそらく多くの解決策を見つけることができます。これは 'scan.hasNextInt()' –

+0

の開始点で、https:// www。 google.it/search?q=java+read+int+hasNextInt&oq=java+read+int+hasNextInt&aqs=chrome..69i57.3796j0j4&sourceid=chrome&ie=UTF-8 –

答えて

1

私が理解できるように、入力が整数でない場合、プログラムは停止します。ここでは単純な解決法です:nextInt()の代わりにnextLine()メソッドを使用してください。入力が数字でないかどうかをチェックしてください。例外をキャッチして、数字がない限り続行してください。

 Scanner scanner = new Scanner(System.in); 
     String input = scanner.nextLine(); 
     int number = 0; 

     while (true) { 
      try { 
       number = Integer.parseInt(input); 
       return; 
      } catch (Exception e) { 
       System.out.println("Invalid number"); 
      } 
      input = scanner.nextLine(); 
     } 
+0

答えのためのthx。答えは – WarMasterFurkan

0

整数が見つからない場合、Scanner.nextInt()は例外をスローします。あなたのいずれかは例えば、例外をキャッチし、それを処理、またはScanner.hasNextIntを(使用して発生するのを防ぐ)

する必要があります。

public static void main(String args[]) { 
    Scanner scan = new Scanner(System.in);  
    int a; 
    System.out.println("a nedir"); 
    if(scan.hasNextInt()){ 
     a = scan.nextInt(); 
    } 
    else{ 
     //Add code to handle invalid input here 
     //ie. propmt the user to renter input or something like that 
    } 
} 

あなたが他のブロックを空白のままにした場合、それはまだ動作しますが、何も非数値入力で入力すると発生します。

+0

です。 – WarMasterFurkan

+0

@WarMasterFurkan心配する必要はありません。 –

関連する問題