Java编写 一个方法计算两个正整数的最大公约数,如果方法参数为负整数值,则将产生llegalArggumentException异常,编程验证方法的设计。
时间: 2025-01-18 09:03:07 浏览: 39
好的,我来为您介绍如何用Java编写一个计算两个正整数最大公约数的方法,并验证其设计:
```java
public class GCDCalculator {
/**
* 计算两个正整数的最大公约数
* @param a 第一个正整数
* @param b 第二个正整数
* @return 两个数的最大公约数
* @throws IllegalArgumentException 如果输入的参数不是正整数
*/
public static int calculateGCD(int a, int b) {
if (a <= 0 || b <= 0) {
throw new IllegalArgumentException("输入的参数必须是正整数");
}
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
public static void main(String[] args) {
// 测试正常情况
System.out.println("GCD of 48 and 18 is: " + calculateGCD(48, 18));
// 测试负数输入
try {
System.out.println("GCD of -48 and 18 is: " + calculateGCD(-48, 18));
} catch (IllegalArgumentException e) {
System.out.println("Caught exception: " + e.getMessage());
}
// 测试0输入
try {
System.out.println("GCD of 0 and 18 is: " + calculateGCD(0, 18));
} catch (IllegalArgumentException e) {
System.out.println("Caught exception: " + e.getMessage());
}
}
}
```
这段代码实现了以下功能:
1. 定义了一个静态方法 `calculateGCD` 来计算两个正整数的最大公约数。
2. 在方法开始处检查输入参数是否为正整数。如果不是,则抛出 `IllegalArgumentException` 异常。
3. 使用辗转相除法来计算最大公约数。
4. 在 `main` 方法中,添加了三个测试用例:
- 一个0和一个正整数
5. 对异常情况进行了捕获和处理,打印出异常信息。
这个实现满足了题目的要求:
- 计算两个正整数的最大公约数
- 对负整数输入抛出 `IllegalArgumentException` 异常
- 提供了测试来验证方法的设计
阅读全文