3.输入两个整数(可以用Scanner的nextInt()方法实现),但在程序运行时,会产生输入异常,如输入的数字是小数或负数等,则程序的运行中会出现异常,严重时程序会发生中断,要保证程序的健壮性,可以采用异常捕获和处理技术。 ①创建一个类MaxFactor; ②在类中定义一个方法,完成最大公约数的计算并声明该方法会抛出的异常,同时在该方法中手动抛出一个异常对象; ③在main方法中调用定义的方法,并捕获方法抛出规划的异常进行处理
时间: 2023-12-19 11:04:33 浏览: 44
好的,以下是代码实现:
```
import java.util.Scanner;
public class MaxFactor {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int num1 = 0, num2 = 0;
try {
num1 = scanner.nextInt();
System.out.print("请输入第二个整数:");
num2 = scanner.nextInt();
if (num1 <= 0 || num2 <= 0) {
throw new Exception("输入的数字不能为负数或零!");
}
} catch (Exception e) {
System.out.println("输入异常:" + e.getMessage());
return;
}
try {
int maxFactor = getMaxFactor(num1, num2);
System.out.println(num1 + "和" + num2 + "的最大公约数为:" + maxFactor);
} catch (Exception e) {
System.out.println("程序异常:" + e.getMessage());
}
}
public static int getMaxFactor(int num1, int num2) throws Exception {
if (num1 <= 0 || num2 <= 0) {
throw new Exception("输入的数字不能为负数或零!");
}
int maxFactor = 1;
for (int i = 1; i <= num1 && i <= num2; i++) {
if (num1 % i == 0 && num2 % i == 0) {
maxFactor = i;
}
}
if (maxFactor == 1) {
throw new Exception("没有找到" + num1 + "和" + num2 + "的公约数!");
}
return maxFactor;
}
}
```
程序中,通过 Scanner 类读取用户输入的两个整数,然后判断是否为负数或零,如果是,则手动抛出一个异常对象。在 getMaxFactor 方法中也对输入的数字进行了判断,如果不符合要求,则同样手动抛出一个异常对象。在 main 方法中调用 getMaxFactor 方法,并进行异常捕获和处理。如果出现异常,则输出异常信息,否则输出最大公约数。
运行结果:
请输入第一个整数:-3
输入异常:输入的数字不能为负数或零!
请输入第一个整数:12
请输入第二个整数:-5
输入异常:输入的数字不能为负数或零!
请输入第一个整数:12
请输入第二个整数:16
12和16的最大公约数为:4
请输入第一个整数:0
输入异常:输入的数字不能为负数或零!
相关推荐
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)