2014-01-27 3 views
0

Я сделал программу, в которой я прошу пользователя ввести номер из 0-8, и если это не номер, появится сообщение с просьбой ввести номер. Если письмо напечатано, на следующей строке будет указано «введите номер».Выяснение, является ли число введенным в Java?

Как это сделать? Если это больше, чем 8 он остается 8, а если она меньше 0 он остается 0.

 if (number >= 8) { 
      number = 8; 
     } else if (number <= 0) { 
      number = 0; 
     } 

UPDATE:

System.out.println("Enter The Number you want:<0 - 8> "); 
    number = in.nextInt(); \\ in is the name of scanner 

    try { 
     if number = in.nextInt(); 
     if(number >= 8) { 
     number = 8; 
     } else if (number <= 0) { 
     number = 0; 
     } 
    } catch (NumberFormatException e) { 
     System.out.println("Enter a number"); 
    } 

Это не работает, что я делаю неправильно?

+2

Похоже, домашнее задание –

+0

Посмотрите в [Integer.parseInt (String)] (http://docs.oracle.com/javase/7/docs/api/java/ lang/Integer.html # parseInt% 28java.lang.String% 29) и посмотреть, как он обрабатывает прием что-то, что не является числом. – Henrik

+0

Исследования .. попробуйте что-нибудь .. если это не сработает, вернитесь за помощью с кодом, который вы попытались. –

ответ

2

Вы можете использовать Scanner класс для чтения из System.in и проверить, если строка номер:

import java.util.Scanner; 
import java.util.InputMismatchException; 

Scanner sc = new Scanner(System.in); 
try { 
    int i = sc.nextInt(); 
} catch (InputMismatchException exc) { 
    System.out.println("not a number"); 
} 
+0

'\t System.out .println («Введите номер, который вы хотите: <0 - 8>»); \t номер = in.nextInt(); \\ in - имя сканера попробуйте { если number = in.nextInt(); если (число> = 8) \t { номер = 8; \t} \t иначе, если (число <= 0) { \t \t число = 0; \t} \t } улов (NumberFormatException е) { System.out.println ("Введите число"); } ' Когда я попытался запустить его, уловка не сработала. – user3240125

+0

Вы должны поймать 'InputMismatchException', а не' NumberFormatException'. –

+0

' \t System.out.println (" Введите номер, который вы хотите: <0 - 8> "); \t номер = in.nextInt(); попробуйте { номер = в.nextInt(); if (number> = 8) \t { number = 8; \t} \t иначе, если (число <= 0) { \t \t число = 0; \t} } catch (InputMismatchException e) { System.out.println («Введите номер»); } '}' Отключить его снова, и в командной строке указано «Исключение в потоке» main «java.util.InputMismatchException» и т. Д. – user3240125

0

В дополнение к ответу Найджела Тафнел, в если вы не используете сканер (но BufferedReader вместо этого, для экземпляр), вы можете использовать следующее:

System.out.print("Please enter a number: "); 
String numberString = in.readLine(); 
try { 
    int number = Integer.parseInt(numberString); 
    System.out.println("You chose number " + number + "!"); 
} catch (NumberFormatException nfe) { 
    System.out.println("Please enter a number"); 
} 
+0

Я использую сканер, но спасибо за ответ. – user3240125

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