有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

循环Java。查找数字的倍数时发生算术异常

我试图找到被输入的数字的倍数,但每次用户输入0,我都会得到这个错误

Exception in thread "main" java.lang.ArithmeticException: / by zero

是的,我知道你不能被零除,但必须有一种方法让它工作

即使输入了零,这仍然可以工作

 public static int prob1Rec(int num1, int num2) {

        int sum = 0;
        for (int i = 1; i < 500; i++) {
            if ((i % num1 == 0) || (i % num2 == 0)) {
                sum += i;
            }
        }
        return sum;
    }

注意:如果其中一个数字为零,我仍然希望将另一个数字的倍数相加


共 (2) 个答案

  1. # 1 楼答案

    您可以将if更改为

    if ((num1 != 0 && i % num1 == 0) || (num2 != 0 && i % num2 == 0)) {
    
  2. # 2 楼答案

    表达式i % num1执行除法,因此代码不安全

    将此行添加为方法的第一行:

    if (num1 == 0 || num2 == 0)
        return 0;