我的程序从用户输入输入,第一个数字,操作(+ - * / ^)然后是第二个数字。当我输入5/0时,它说错误!不能除以0。这就是它应该做的事情。但是,当我键入5/5即1时,我收到了错误消息。
do {
try {
if (opperation == "/" && num2 == 0);
throw new ArithmeticException();
} catch (ArithmeticException ae) {
System.out.println("ERROR !!! Cannot divide by 0");
}
System.out.println("Enter First Number");
num1 = scan.nextInt();
System.out.println("ENTER Opperation: ");
opperation = scan.next();
System.out.println("ENTER Second Number: ");
num2 = scan.nextInt();
} while (num2 == 0);
答案 0 :(得分:2)
你的if语句中有一个迷路分号。它应该是
if (opperation == "/" && num2 == 0)
throw new ArithmeticException();
而不是
if (opperation == "/" && num2 == 0);
throw new ArithmeticException();
你所拥有的与
基本相同if (opperation == "/" && num2 == 0) {
}
throw new ArithmeticException();
答案 1 :(得分:1)
在if
声明后,您不应该使用分号。这使得if语句的主体变成了什么。将其更改为:
if (opperation == "/" && num2 == 0)
throw new ArithmeticException();
您的IDE似乎已经抓住了这个并以错误的方式为您重新创建了代码。
顺便说一句,这不是你使用ArithmeticException
的方式。除以0的代码行将自动抛出ArithmeticException
,然后您可以捕获它。但是,这比完全不使用ArithmeticException
要慢:
if (opperation == "/" && num2 == 0)
System.out.println("ERROR !!! Cannot divide by 0");