Java 数组的和,两个相同的方法得到不同的结果

Java 数组的和,两个相同的方法得到不同的结果,java,arrays,for-loop,Java,Arrays,For Loop,我有两个数组,我想要元素之和,但在一个方法中,我只想得到数组中元素的列表 错误阵列: int[] names = {1, 24, 4, 50, 4, 1}; int suma = 0; for (int i = 0; i < names.length; i++) { suma += names[i]; System.out.println("suma" + suma); } int[]name={1,24,4,50,4,1

我有两个数组,我想要元素之和,但在一个方法中,我只想得到数组中元素的列表

错误阵列:

 int[] names = {1, 24, 4, 50, 4, 1};

    int suma = 0;
    for (int i = 0; i < names.length; i++) {

        suma += names[i];

        System.out.println("suma" + suma);

    }
int[]name={1,24,4,50,4,1};
int-suma=0;
for(int i=0;i
我有结果:suma 1,suma 24

但这是正确的:

int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = 0;
    for (int i = 0; i < numbers.length; i++) {
        sum += numbers[i];
    }
    System.out.println("The sum is: " + sum);
int[]数字={1,2,3,4,5,6,7,8,9,10};
整数和=0;
for(int i=0;i

我很困惑。

在本例中,打印在循环内部,因此数组中每个元素都会打印一次suma

for (int i = 0; i < names.length; i++) {
    suma += names[i];
    // inside the loop scope
    System.out.println("suma" + suma);
} // end of loop scope
for(int i=0;i
在第二个循环中,它不在循环范围内,所以,只有循环结束时,才会打印sum

for (int i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}  // end of loop scope
// outside the loop scope
System.out.println("The sum is: " + sum);
for(int i=0;i
在这种情况下,打印在循环内部,因此数组中每个元素将打印一次suma

for (int i = 0; i < names.length; i++) {
    suma += names[i];
    // inside the loop scope
    System.out.println("suma" + suma);
} // end of loop scope
for(int i=0;i
在第二个循环中,它不在循环范围内,所以,只有循环结束时,才会打印sum

for (int i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}  // end of loop scope
// outside the loop scope
System.out.println("The sum is: " + sum);
for(int i=0;i
在第一个代码中:

for (int i = 0; i < names.length; i++) {
  suma += names[i];
  System.out.println("suma" + suma);
}
因为
System.out.println(“suma”+suma)正在执行
名称。长度
次数

然而,在第二种情况下:

for (int i = 0; i < numbers.length; i++) {
  sum += numbers[i];
}
在第一个代码中:

for (int i = 0; i < names.length; i++) {
  suma += names[i];
  System.out.println("suma" + suma);
}
因为
System.out.println(“suma”+suma)正在执行
名称。长度
次数

然而,在第二种情况下:

for (int i = 0; i < numbers.length; i++) {
  sum += numbers[i];
}

因为一旦你在循环中打印和,而你仍然在计算和,一旦你做对了,你就先创建和,然后再打印…如果你每次在循环中打印,或者在循环结束时打印一次,就会产生不同。你的输出是错误的,应该是suma 1,suma 25(1+24),suma 29(1+24+4)在第一种情况下,最后一个}suma和sum应该等于hanks,现在我明白了!您可能不了解for是如何工作的。循环中的代码每次都会执行,直到控制变量满足循环结束的条件。在第一种情况下,循环执行10次,每次打印suma。因为一旦你在循环中打印suma,而你仍然在计算sum,一旦你做对了,你就先创建sum,然后再打印……如果你每次都通过循环打印,结果会有所不同,或者在最后一次。你的输出是错误的,应该是suma 1,suma 25(1+24),suma 29(1+24+4),在最后一次之后的第一种情况下,suma和sum应该是相等的hanks,现在我明白了!您可能不了解for是如何工作的。循环中的代码每次都会执行,直到控制变量满足循环结束的条件。在第一种情况下,循环执行10次,每次都打印suma。谢谢,现在我明白了!谢谢,现在我明白了!