我正在尝试编写此程序,该程序会询问用户x1
的值,并在用户输入除整数之外的其他内容时创建异常。但是,当我使用InputMismatchException
时,我不断收到错误消息,说它无法转换为throwable?
这是我的代码:
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int x1 = getScannerInt("Enter x1");
}
public static int getScannerInt(String promptStr) {
Scanner reader = new Scanner(System.in);
int x1 = 1;
boolean continueLoop = true;
while (continueLoop) {
System.out.println("Enter x1: ");
}
{
try {
x1 = reader.nextInt();
continueLoop = false;
} catch (InputMismatchException e) {
System.out.println("Please only enter numbers");
}
}
return x1;
}
我将不胜感激任何帮助!
答案 0 :(得分:0)
您必须使用reader.nextLine();
这样使用新行:
while (continueLoop) {
System.out.println("Enter x1: ");
try {
x1 = reader.nextInt();//this does not consume the last newline
continueLoop = false;
} catch (InputMismatchException e) {
System.out.println("Please only enter numbers");
}
reader.nextLine();//You can consume it using nextLine()
}
注意:
使用时
while (continueLoop)
System.out.println("Enter x1: ");
在System.out.println("Enter x1: ");
之后唯一有效的指令,请小心。