3 回答

TA貢獻1772條經驗 獲得超8個贊
既然你已經表現出了努力,但你似乎也是Java的新手,我正在嘗試糾正你的代碼。通常,不建議用于這種低水平的校正。
我們需要在捕獲它之前拋出一個異常 - 這就是你周圍的情況 - 。NegativeValueException
我假設變量 &類型 - , &是聲明和定義的。NegativeValueExceptioninvalidInputkeyboard
我已經提供了示例代碼,對您提出的代碼進行了最小的更改,盡管您提出的問題可以通過更好的代碼來解決。
do{
invalidInput=false;
try{
System.out.print("Please enter a positive value for the numerator: ");
int numerator = keyboard.nextInt();
System.out.print("Please enter a positive value for the denominator: ");
int denominator = keyboard.nextInt();
if(numerator<0 && denominator <0){
throw new NegativeValueException();
}else if (numerator >=0 && denominator >= 0){
int quotient = numerator / denominator;
System.out.println();
System.out.print("The result of integer division is: ");
System.out.println(quotient);
System.out.println();
}
} catch(InputMismatchException e){
System.out.println("Enter only numbers.");
invalidInput = true;
}catch(NegativeValueException e){
System.out.println("no negative values.");
invalidInput = true;
}catch(ArithmeticException e){
System.out.println("Division by zero.");
invalidInput = true;
}
}while (invalidInput);

TA貢獻1818條經驗 獲得超11個贊
Scanner s = new Scanner(System.in);
do {
try {
System.out.print("Please enter a positive value for the numerator: ");
int numerator = s.nextInt();
System.out.print("Please enter a positive value for the denominator: ");
int denominator = s.nextInt();
int quotient = numerator / denominator;
} catch (InputMismatchException e) {
System.out.println("InputMismatchException " + e);
System.exit(0);
} catch (ArithmeticException e) {
System.out.println("ArithmeticException " + e);
System.exit(0);
} catch (Exception e) {
System.out.println("NegativeValueException " + e);
System.exit(0);
}
} while (true);

TA貢獻1876條經驗 獲得超6個贊
實際上,問題是你在外面做數學運算,比如說如果它拋出一個程序通過這些檢查:try-blockexception
if (numerator >=0 && denominator >= 0) // false as there was exception
else if(numerator<0 && denominator <0) // false as there was exception
else
invalidInput = true; //gets executed
執行每個異常并因此中斷 .將數學移入內部invalidInput = truedo-while looptry-block
試試這個代碼:
do
{
try
{
System.out.print("Please enter a positive value for the numerator: ");
numerator = keyboard.nextInt();
System.out.print("Please enter a positive value for the denominator: ");
denominator = keyboard.nextInt();
if (numerator >=0 && denominator >= 0)
{
quotient = numerator / denominator;
}
else if(numerator<0 && denominator <0)
{
throw new NegativeValueException();
}
else
invalidInput = true;
System.out.println();
System.out.print("The result of integer division is: ");
System.out.println(quotient);
System.out.println();
}
catch(InputMismatchException e)
{
System.out.println("Enter only numbers.");
}
catch(NegativeValueException e)
{
System.out.println("no negative values.");
}
catch(ArithmeticException e)
{
System.out.println("Division by zero.");
}
}while (invalidInput);
添加回答
舉報