2015-07-11 4 views
1

Я пытаюсь создать простую программу Java, где пользователь должен ввести свой возраст. Если пользователь вводил, например, письмо вместо номера, он получит сообщение.
Что я хотел бы сделать, так это то, что в дополнение к сообщению пользователю следует попросить ввести другой вход, и этот ввод будет проверен снова, чтобы узнать, является ли это числом.
Может ли кто-нибудь знать, как я могу это достичь?введите число на сканер

System.out.println("2 - Set The Age"); 
Scanner b = new Scanner(System.in); 

if (b.hasNextDouble()) { 
    double lage = b.nextDouble(); 
    setAge(lage); 
    addEmployeeMenu(); 
} else { 
    System.out.println("You should type only numbers!"); 
} 

ответ

3

Вы можете использовать время цикла, как этот

Scanner b = new Scanner(System.in); 
double lage; 

while (true) { 
    System.out.println("2 - Set The Age"); 
    if(b.hasNextDouble()){ 
     lage = b.nextDouble(); 
     break; 
    }else b.nextLine(); 
} 

Дело в том, получить свой номер и проверить его внутри время цикла, повторить до тех пор, пока вход не является правильным

+0

'б = новый сканер (System.in)' ... и какова цель й строка? (в обоих примерах) – Tom

+1

Гош, ты прав! Плохая копия/вставка, я исправляю это! –

0

Вы можете также использовать NumberFormatException:

while (true) { 
      System.out.println("Set the age: "); 
      String input = sc.next(); 
      try { 
       int x = Integer.parseInt(input); 
       System.out.println("Your input '" + x + "' is a integer"); 
       break; 
      } catch (NumberFormatException nFE) { 
       System.out.println("Not an Integer"); 
      } 
     } 
Смежные вопросы