在扫描仪上输入数字
input a number on scanner
我正在尝试创建一个简单的 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!");
}
你可以像这样使用 while 循环
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();
}
关键是,获取你的号码并在 while 循环中检查它,只要输入不正确就重复
你也可以使用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");
}
}
我正在尝试创建一个简单的 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!");
}
你可以像这样使用 while 循环
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();
}
关键是,获取你的号码并在 while 循环中检查它,只要输入不正确就重复
你也可以使用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");
}
}