2014-11-24 2 views
0

Как проверить, введен ли пользователем номер? Это номер из основного метода, и он проверяется, является ли это числом в другом методе. Он должен возвращать true, если вход является числом и ложным, если это не так.Проверка ввода пользователем другого метода

То, что я до сих пор:

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 

    System.out.print("Please, enter a number: "); 
    int number = sc.nextInt(); 

    validateInput(number); 
} 

public static int validateInput(int num) { 
    while(num <= 0) 
     if(!sc.hasNextInt()) 
      System.out.print("INVALID INPUT, Try again..."); 
} 

Вывод должен быть:

Please, enter a number: a 
Invalid input, Try again... 
Please, enter a number: 16 
Valid input, thank you. 
+0

Возможный дубликат [Что лучше проверить, если String представляет целое число в Java?] (Http://stackoverflow.com/questions/237159/whats-the-best-way-to-check- to-see-if-a-string-contains-an-integer-in-java) – APerson

+0

Вызов 'sc.nextInt()' всякий раз, когда ввод не является int, генерирует исключение. –

ответ

0

Там сильная непоследовательность в вашей логике. вы запрашиваете номер и с чем вы хотите сравнить его? Это утверждение будет верно, пока оно находится в пределах целого диапазона

while(num <= 0) 
     if(!sc.hasNextInt()) 
      System.out.print("INVALID INPUT, Try again..."); 

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

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