Java如何找到两个不同数组中元素的和?

Java如何找到两个不同数组中元素的和?,java,arrays,indexoutofboundsexception,addition,Java,Arrays,Indexoutofboundsexception,Addition,我需要用array1和array2中相应元素的总和填充一个新数组array3。阵列被指定为a1、a2和a3 double[] a1 = {1.2, 2.3, 3.4, 4.5, 5.6}; double[] a2 = {1.0, 2.0, 3.0, 4.0, 5.0}; a3也应该是一个5倍的数组。 结果应该是{2.2,4.3,6.4,8.5,10.6} 我一直想弄明白,但总是搞砸谢谢您的帮助 以下是我到目前为止的情况: double[] a1 = {1.2, 2.3, 3.4, 4.5, 5

我需要用array1和array2中相应元素的总和填充一个新数组array3。阵列被指定为a1、a2和a3

double[] a1 = {1.2, 2.3, 3.4, 4.5, 5.6};
double[] a2 = {1.0, 2.0, 3.0, 4.0, 5.0};
a3也应该是一个5倍的数组。 结果应该是{2.2,4.3,6.4,8.5,10.6}

我一直想弄明白,但总是搞砸谢谢您的帮助

以下是我到目前为止的情况:

double[] a1 = {1.2, 2.3, 3.4, 4.5, 5.6}; 
double[] a2 = {1.0, 2.0, 3.0, 4.0, 5.0}; 
int i = 0; 
double [] a3 = new double[5]; 
for( i =0; i < a1.length; i++) {
   a3[i] = a1[i] + a2[i];  
}
System.out.println(a3[i]);
double[]a1={1.2,2.3,3.4,4.5,5.6};
双[]a2={1.0,2.0,3.0,4.0,5.0};
int i=0;
double[]a3=新的double[5];
对于(i=0;i
您只需打印a3数组的所有元素即可查看所需结果:

for( i =0; i < a3.length; i++){
     System.out.println(a3[i]);
}

这将引发空指针异常,因为循环结束时i的值将为5。

您只需打印a3数组的所有元素即可查看所需结果:

for( i =0; i < a3.length; i++){
     System.out.println(a3[i]);
}
这将引发空指针异常,因为在循环结束时i的值将为5。

for( i =0; i < a1.length; i++){
  a3[i] = a1[i] + a2[i];  
}

System.out.println(a3[i]);
for(i=0;i
应该是

for( i =0; i < a1.length; i++){
  a3[i] = a1[i] + a2[i];  
  System.out.println(a3[i]);
}
for(i=0;i
这个

for(i=0;i
应该是

for( i =0; i < a1.length; i++){
  a3[i] = a1[i] + a2[i];  
  System.out.println(a3[i]);
}
for(i=0;i
double[]a1={1.2,2.3,3.4,4.5,5.6};
双[]a2={1.0,2.0,3.0,4.0,5.0};
double[]a3=新的double[5];
对于(int i=0;i
这是一个更好的解决方案。不管怎样,问题的核心是你在用
i
做什么。当您尝试使用
for
循环遍历
array
的元素时,将
i
的范围仅限于
for
循环有助于避免您在原始问题中遇到的一些问题

如果将
i
的范围仅限于
for
循环,那么编译器应该在您尝试编译之前发出警告,因为您的原始输出语句甚至不知道名为
i

double[]a1={1.2,2.3,3.4,4.5,5.6}的变量;
双[]a2={1.0,2.0,3.0,4.0,5.0};
double[]a3=新的double[5];
对于(int i=0;i
这是一个更好的解决方案。不管怎样,问题的核心是你在用
i
做什么。当您尝试使用
for
循环遍历
array
的元素时,将
i
的范围仅限于
for
循环有助于避免您在原始问题中遇到的一些问题


如果将
i
的范围仅限于
for
循环,然后,您的编译器应该在您尝试编译之前抛出警告,因为您的原始输出语句甚至不知道名为
i

的变量
indexoutboundsException
是由于print语句中
i
的值等于
a3.length()
而引起的。数组元素的索引范围是从0到
array.length-1
,而不是
array.length
。您的代码的其余部分是绝对好的。那么,试试这个:

for( i =0; i < a3.length; i++){
     System.out.println(a3[i]);
}

打印数组中的值时,可以使用这两种方法中的任何一种,因为
System.out.println()
不会打印数组中的所有元素。

由于print语句中
i
的值等于
a3.length()
导致
索引自动边界异常。数组元素的索引范围是从0到
array.length-1
,而不是
array.length
。您的代码的其余部分是绝对好的。那么,试试这个:

for( i =0; i < a3.length; i++){
     System.out.println(a3[i]);
}

打印数组中的值时,可以使用这两种方法中的任何一种,因为
System.out.println()
不会打印数组中的所有元素。

您的代码很好。请记住变量i是递增的,所以要打印最后一个值,它必须是i-1

public class Test {
    public static void main(String[] args) {
        double[] a1 = {1.2, 2.3, 3.4, 4.5, 5.6};

        double[] a2 = {1.0, 2.0, 3.0, 4.0, 5.0};

        int i = 0;

        double [] a3 = new double[5];


        for( i =0; i < a1.length; i++){
            a3[i] = a1[i] + a2[i];  
        }

        System.out.println(a3[i-1]);

        for( i =0; i < a1.length; i++){
            System.out.println("a["+i+"] = "+a3[i]);
        }
    }
}
公共类测试{
公共静态void main(字符串[]args){
双[]a1={1.2,2.3,3.4,4.5,5.6};
双[]a2={1.0,2.0,3.0,4.0,5.0};
int i=0;
double[]a3=新的double[5];
对于(i=0;i
您的代码很好。请记住变量i是递增的,所以要打印最后一个值,它必须是i-1

public class Test {
    public static void main(String[] args) {
        double[] a1 = {1.2, 2.3, 3.4, 4.5, 5.6};

        double[] a2 = {1.0, 2.0, 3.0, 4.0, 5.0};

        int i = 0;

        double [] a3 = new double[5];


        for( i =0; i < a1.length; i++){
            a3[i] = a1[i] + a2[i];  
        }

        System.out.println(a3[i-1]);

        for( i =0; i < a1.length; i++){
            System.out.println("a["+i+"] = "+a3[i]);
        }
    }
}
公共类测试{
公共静态void main(字符串[]args){
双[]a1={1.2,2.3,3.4,4.5,5.6};
双[]a2={1.0,2.0,3.0,4.0,5.0};
int i=0;
double[]a3=新的double[5];
对于(i=0;i
伙计们已经帮你解决了
系统.out.println()
导致的
索引排列问题。除了这个问题,我建议改变

double [] a3 = new double[5];


否则,如果您将
a1
的大小增加,您将得到另一个
IndexArrayOutOfBounds
错误。

伙计们已经帮助您解决了
IndexArrayOutOfBounds
引起的
System.out.println()
问题。除了这个问题,我建议改变

double [] a3 = new double[5];

否则,如果增加
a1
的大小,将得到另一个
索引