我在写一个简单的分割程序。用户输入分子和分母。如果用户没有输入整数,分子和分母将抛出异常。另外,如果用户输入0,分母应该抛出异常。错误应该告诉用户每次他们做错了什么,并继续循环直到输入正确的输入。然后它应该在值正确时退出。多个用户输入的多个异常处理
为什么当用户输入不正确的分母时,它会再次请求分子?
import java.util.InputMismatchException;
import java.util.Scanner;
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.printf("Welcome to Division \n");
Scanner div = new Scanner(System.in);
boolean continueLoop = true;
do
{
try
{
System.out.println("\nEnter a numerator:\n");
int num1 = div.nextInt();
System.out.println("Enter a denominator:");
int num2 = div.nextInt();
int result = quotient(num1, num2);
System.out.printf("The Answer is: %d/%d = %d%n",num1,num2,result);
}
catch(InputMismatchException inputMismatchException)
{
System.err.printf("\n Exception \n",inputMismatchException);
div.nextLine();
System.out.printf("You must enter integers");
}
catch(ArithmeticException arithmeticException)
{
System.err.printf("\n Exception \n",arithmeticException);
System.out.printf(" Zero is an invalid entry");
}
} while (continueLoop);
System.out.printf("\n GOODBYE \n");
}
}
你有一个单一的循环,所以它会通过所有步骤每次运行。在调试器中逐步运行代码并亲自查看。 –