Я пытаюсь создать набор кода, который позволит вам угадать число с компьютером. Раздел проблем и консоль отладки понятны, и я мог запускать его, пока не попытался ввести значения через интегрированный терминал.
Я преобразовал возвращаемое строковое значение из Input.nextLine () в значение int, хотя, похоже, это не имело никакого эффекта, я также переключился с запуска кода на интегрированном терминале вместо консоли отладки. Кроме того, я пробовал оператор catch (NumberFormatException), но он не удался, так как код Visual Studio не может идентифицировать ни catch, ни NumberFormatException.
while ( win == false)
{
int CorrectNumber = 70;
int g = (int)( Math.random() * 101 );
System.out.print( "The Number I Guess Is:" + g);
String TooHigh = "TooHigh";
//type TooHigh if the number computer guessed is too high
TooHigh = input.nextLine();
int h1 = Integer.parseInt(TooHigh);
String TooLow = "TooLow";
//type TooLow if the number computer guessed is too low
TooLow = input.nextLine();
int l1 = Integer.parseInt(TooLow);
if ( g == h1 ) //too high
{
int y = (int)( Math.random() * ( g - 70 ) );
System.out.print( "Another Number I Guessed is: " + y );
}
else if ( g == l1 ) //too low
{
int z = (int)( Math.random() * ( 70 - g ) );
System.out.print( "Another Number I Guessed is: " + z );
}
else if ( g == 70 ) //computer wins
{
win = true;
}
Когда я ввожу слова, чтобы сказать компьютеру, угадал ли число, которое он угадалслишком высокий или слишком низкий, я ожидаю, что это даст мне еще один номер. Но вместо этого я получаю следующие сообщения:
Exception in thread "main" java.lang.NumberFormatException: For input string: "TooLow"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at RevGuess.main(RevGuess.java:23)