我试图向用户询问两个号码。我想检查这些输入是否实际上是数字,但是如果第一个输入是一个字符串,我到目前为止的代码不允许我输入第二个值。
因此扫描仪不读取任何其他声明。
我怎么能让它起作用?
import java.util.Scanner;
public class calculations {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Please enter your first name: ");
String fname = console.nextLine();
System.out.print("Please enter your last name: ");
String lname = console.nextLine();
System.out.print("Please enter your first number: ");
if (console.hasNextInt()) {
int number1 = console.nextInt();
System.out.print("Please enter your second number: ");
if (console.hasNextInt()) {
int number2 = console.nextInt();
}
} else
System.out.print("Please enter your second number: ");
if (console.hasNextInt()) {
int number2 = console.nextInt();
// this part does not work
}
}
}
答案 0 :(得分:1)
您只需在console.nextLine();
语句后添加else
,因为Scanner.hasNextInt方法不会将光标移动到您之前的输入(如果它是字符串)。