2014-10-01 5 views
1

Я делаю простую игру угадывания, которая берет входные данные от пользователя. Имутация должна быть числом, которое меньше 6, чтобы угадать случайное число. Я уже обращался с ситуацией, если пользователь большее число с:Что делать с numberformatexception?

if(num > 5) { 
System.out.println("The number is too high. You spoiled one turn. Your saldo is now  "  + cash +"."); 
guessAgain(); 
} 

Но тот факт, что пользователь что-то в том, что не является числом, я думал, что смогу справиться с этим с этим кодом:

if(num != 1 && num != 2 && num != 3 && num != 4 && num != 5) { 
System.out.println("Invalid input"); 
guessAgain(); 
} 

Но это не работает и дает мне numberformatexception для строки ввода. Не могли бы вы помочь мне? Заранее спасибо

Это код перед ним:

System.out.print("Guess : "); 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
String gok = null; 

try { 
    gok = br.readLine(); 
    } catch (IOException ioe) { 
    System.out.println("IO error"); 
    System.exit(1); 
    } 




int num = Integer.parseInt(gok); 

ответ

0

Если вы используете попробовать поймать, вы можете использовать исключение, чтобы определить, если он не был номер, который был заполнен (в попытке. вы можете поместить преобразование в int). И большую часть времени там будет исключением с обращенным он собирается быть, если бы не был номер, который был заполнен

EDIT:.

попробовать
{
Integer.valueOf ([здесь ваш ввод]);
}
улов (NumberFormatException е)
{
System.out.println ("Ваш вклад не число");
}

+0

, пожалуйста, медведь со мной, что им новичок, вы можете показать, как код должен выглядеть? – user3660293

+0

Я добавил образец кода по вашему запросу. – Dave

+0

Это решило проблему для вас? – Dave

0

Transform Num к Integer и поймать NumberFormatException подобное (я просто взять код и добавить ловя НФО):

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String num = null; 
     try 
     { 
      num = br.readLine(); 
      Integer.valueOf(num); 
     } catch (IOException ioe) 
     { 
      System.out.println("IO error"); 
      System.exit(1); 
     } catch (NumberFormatException nfe) 
     { 
      System.out.println("Invalid input"); 
     } 
     System.out.println(num); 
+0

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

Смежные вопросы