0

Я получаю ошибкуПочему я получаю эту ошибку? (Double Array метод)

«Исключение в потоке "основного" java.util.InputMismatchException на java.util.Scanner.throwFor (Scanner. java: 909) на java.util.Scanner.next (Scanner.java:1530) на java.util.Scanner.nextInt (Scanner.java:2160) на java.util.Scanner.nextInt (Scanner.java: 2119) по адресу SearchArray.main (SearchArray.java:10) "

, когда у меня этот код работает. Может ли кто-нибудь сказать мне, что я делаю неправильно?

import java.util.Scanner; 
public class SearchArray { 
    public static void main (String args[]){ 
     //imput array size 
     //imput array digits 
     //imput element to search for 

     Scanner scan = new Scanner(System.in); 
     int size = scan.nextInt(); 
     double array[] = new double[size]; 

     for(int i = 0; i <= array.length-1; i++){ 
      array[i] = scan.nextDouble(); 
     } 

     double digit = scan.nextDouble(); 
     boolean bool = findElement(array,digit); 

     if(bool == true){ 
      System.out.println(digit + " was found in the array"); 
     }else if(bool == false){ 
      System.out.println(digit + " was NOT found in the array"); 
     } 
    } 

    public static boolean findElement(double[] array, double digit){ 
     boolean bool = false; 
     //accepts double array, double & returns boolean 
     //check if numnber entered is in the array 

     for(int i = 0; i <= array.length-1; i++){ 
      if(array[i] == digit){ 
       bool = true; 
      }else{ 
       bool = false; 
      } 
     } 

     return bool; 
    } 
} 
+0

Я считаю, что вы вводите то, что не является числом, когда «Сканер» ожидает «int». –

+1

Можете ли вы предоставить данные ввода. Так что мы можем легко отладить код. Возможно, вы столкнулись с проблемой @David Wallace. –

+1

Возможный дубликат [Исключение входных несоответствий] (http://stackoverflow.com/questions/14027537/input-mismatch-exception) – James

ответ

1

общественный класс InputMismatchException Брошенного сканер, чтобы указать, что маркер не получен матча шаблона для ожидаемого типа, или маркер из диапазона для ожидаемого типа.

Посмотрите на этот ответ: https://stackoverflow.com/a/14027583/7421645 и попробуйте понять, почему вы получаете исключение, например. попытаться поймать исключение:

try { 
    // ... 
} catch (InputMismatchException e) { 
    System.out.print(e.getMessage()); //try to find out specific reason. 
} 

Я также попробуйте ввести тестовые данные, как String первыми, по крайней мере, пока вы не будете уверены, что ваши ожидаемые входы обеспечивают ожидаемые результаты.

String input = "1 fish 2 fish red fish blue fish"; 
Scanner s = new Scanner(input); 
Смежные вопросы