InputMisMatch 异常错误
InputMisMatch Exception Error
我正在尝试编写这个程序,询问用户 x1
的值,并在用户输入非整数的情况下创建异常。但是,当我使用 InputMismatchException
时,我不断收到错误消息,提示它无法转换为可抛出对象?
这是我的代码:
/**
* @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;
}
我将不胜感激!
您必须像这样使用 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: ");
,小心。
我正在尝试编写这个程序,询问用户 x1
的值,并在用户输入非整数的情况下创建异常。但是,当我使用 InputMismatchException
时,我不断收到错误消息,提示它无法转换为可抛出对象?
这是我的代码:
/**
* @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;
}
我将不胜感激!
您必须像这样使用 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: ");
,小心。