如何将一个数组中的一系列值除以另一个数组中的一系列值

How to divide a series of values in one array by a series of values in another array

我是 Java 的初学者,想就我遇到的数组问题寻求帮助。我正在尝试构建一个简单的程序,它有两个 int 类型的数组,每个数组中有 5 个整数。我想将一个数组中整数的长度除以另一个数组中整数的长度。我的程序似乎在某种程度上有效,因为它给了我除法的结果。但是它也给我以下错误:

线程异常 "main" java.lang.ArrayIndexOutOfBoundsException: 5 在 ArrayDivide.main(ArrayDivide.java:11)

谁能告诉我哪里出错了?这是我的代码:

public class ArrayDivide {

    public static void main(String[] args) {

        int arr1[]={8,4,6,8,4};
        int arr2[]={2,4,2,1,2};

        for (int x =0;x <arr1.length;x++){
            for (int j =0;x <arr2.length;j++){
                int result = arr1[x] / arr2[j]; 

                System.out.println(result);

            }
        }
    }       
}

将第二个循环更改为

 for (int j =0;j <arr2.length;j++){

j <arr2.length 来自 x <arr2.length

循环

for (initialization; condition ;updation)

因为你在 condition 中比较 j 部分循环继续在 5th 索引

给你异常

将外部数组 (arr1) 的每个数字除以其他数组 (arr2) 中的相应数字

代码如下所示。您还应该进行检查以验证两个数组的长度是否相同。

public static void main(String[] args) {
        int arr1[]={8,4,6,8,4};
        int arr2[]={2,4,2,1,2};

        for (int x =0;x <arr1.length;x++){
                int result = arr1[x] / arr2[x];
                System.out.println(result);
        }
    }

输出为:

4
1
3
8
2

将外部数组(arr1)的每个数字除以其他数组(arr2)中的每个数字

如果你想将外部数组的每个数字与内部数组的每个数字相除,请使用以下代码。在你的代码条件不对,它应该是 j <arr2.length 而不是 x <arr2.length.

public static void main(String[] args) {
        int arr1[]={8,4,6,8,4};
        int arr2[]={2,4,2,1,2};

        for (int i=0; i<arr1.length; i++){
            for (int j =0;j<arr2.length;j++){
                int result = arr1[i] / arr2[j];

                System.out.println(result);

            }
        }
    }
public class ArrayDivide {

public static void main(String[] args) {

    int arr1[]={8,4,6,8,4};
    int arr2[]={2,4,2,1,2};

    for (int x =0;x <arr1.length;x++){
            int result = arr1[x] / arr2[x]; 

            System.out.println(result);
     }

    }
}       

ArrayIndexOutOfBoundException 当您尝试访问索引大于数组大小时的项目时发生异常。

在上面的代码中:

       for (int x =0 ; x < arr1.length ; x++){
            for (int j =0 ; 0 < arr2.length ; j++){
                int result = arr1[x] / arr2[j]; 

                System.out.println(result);

            }
        }

你有 x < arr2.lengh.

假设您的 arr1 长度为 10,arr2 长度为 5,在这种情况下,当 j 为 6 时,它仍然小于 10,并且您的代码 int result = arr1[x] / arr2[j]; 将尝试访问 arr2[6]这会产生一个 ArrayIndexOutOfBoundException.

要解决此问题,您需要在内部循环中检查从 0 到 arr2 的长度。

答案:

           for (int x =0;x <arr1.length;x++){
                for (int j =0;x <arr2.length;j++){
                    int result = arr1[x] / arr2[j]; 

                    System.out.println(result);

                }
            }