2、【InputMismatchException异常和ArithmeticException异常】编写一个程序,提示用户输入两个整数,然后显示它们的商。用户输入错误时提示用户重新输入,除数输入为0时提示除数不能为0。
时间: 2024-03-17 09:43:14 浏览: 75
产生一个值为0.0—100.0之间的随机数,然后除以一个在程序前面板中输入的数。当输入的数值为零时,前面板上放置的指示灯亮,提示除法无效。实例.rar
好的,以下是代码实现:
```java
import java.util.InputMismatchException;
import java.util.Scanner;
public class DivideNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numerator = 0;
int denominator = 0;
boolean numInputCorrect = false;
boolean denInputCorrect = false;
while (!numInputCorrect) {
try {
System.out.print("请输入被除数:");
numerator = scanner.nextInt();
numInputCorrect = true;
} catch (InputMismatchException e) {
System.out.println("输入错误,请输入整数!");
scanner.next();
continue;
}
}
while (!denInputCorrect) {
try {
System.out.print("请输入除数:");
denominator = scanner.nextInt();
if (denominator == 0) {
throw new ArithmeticException("除数不能为0!");
}
denInputCorrect = true;
} catch (InputMismatchException e) {
System.out.println("输入错误,请输入整数!");
scanner.next();
} catch (ArithmeticException e) {
System.out.println(e.getMessage());
}
}
double result = (double) numerator / denominator;
System.out.println("商为:" + result);
}
}
```
程序中使用了两个 while 循环,分别对被除数和除数进行输入和验证。如果用户输入的不是整数,会提示用户重新输入;如果除数输入为0,会抛出 ArithmeticException 异常并提示除数不能为0。
这里还需要注意的是,当用户输入错误时需要使用 scanner.next() 方法将错误输入的内容清除,否则程序会陷入死循环。
阅读全文