Exception in thread "main" java.lang.ArithmeticException: / by zero at pkg.practice.n_10.main(n_10.java:9)
时间: 2024-10-10 15:12:38 浏览: 31
这个异常信息表明你在 `pkg.practice.n_10` 类的 `main` 方法中遇到了 `ArithmeticException`,原因是在第9行(`sum += 1/i;`),发生了除以零的操作。在数学中,除以零是不允许的,所以当你尝试将 `1` 除以循环变量 `i`(它从 `1` 开始递增),并且 `i` 变成 `1` 时,就会触发这个异常。
为了解决这个问题,你需要在将 `1` 添加到 `sum` 之前,检查 `i` 是否等于 `1` 或者是否可能导致除零。如果 `i` 等于 `1`,则跳过当前循环迭代或者先将 `sum` 设置为某个非零初始值,然后再开始循环。这里是修改后的代码示例:
```java
public class n_10 {
public static void main(String[] args) {
double sum = 1; // 初始化 sum 为非零值,避免除零
int i = 2; // 将 i 的初始值设为 2
for (; i <= 10; i++) { // 初始值改为 i > 1
if (i == 1) continue; // 如果 i 是 1,跳过此次循环
sum += 1 / i;
}
// 检查 sum 是否超过 10 后再输出结果
if (sum <= 10) {
System.out.println(i);
} else {
System.out.println("Sum exceeded 10.");
}
}
}
```
阅读全文