我有一个InputMismatchException,它停止输入小数,但它对负整数/负小数没有帮助。
if(userInput == 1) {
int l;
l = 0;
try {
l = input.nextInt();
} catch (InputMismatchException e) {
System.out.println("");
input.next();
}
}
如果我添加一个带有if语句的do while循环等于或小于零,它将在if(userInput == 1)语句中循环,而不是从菜单的开头开始,就像它是否为正输入小数。它对负小数也没有帮助。
我试图在catch中添加两个异常,但无法使其工作。
答案 0 :(得分:0)
试试这个:
if (input < 0){
throw new IllegalArgumentException("Input cannot be negative.");
}
如果数字为负数,它将抛出异常,然后执行catch代码。
答案 1 :(得分:0)
您可以将您的int转换为String并检查它是否有小数点或负号。
Scanner input = new Scanner(System.in);
int l;
while (true)
{
l = input.nextInt();
if ((""+l).indexOf('.') >= 0 || (""+l).indexOf('-') >= 0)
{
System.out.println(/*your message here*/);
}
else
{
break;
}
}
//continue with your program
编辑:语法