我有两个数组,我想要一些元素,但在一个方法中,我只是为了得到数组中的元素列表。
错误的数组:
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);
}
我有结果: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);
我很困惑。
答案 0 :(得分:0)
在这种情况下,在循环内部打印,因此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 < numbers.length; i++) {
sum += numbers[i];
} // end of loop scope
// outside the loop scope
System.out.println("The sum is: " + sum);
答案 1 :(得分:0)
在第一段代码中:
for (int i = 0; i < names.length; i++) {
suma += names[i];
System.out.println("suma" + suma);
}
for {...}
suma += names[i];
System.out.println("suma" + suma);
每次for
循环运行时,它都有两个要执行的语句。这就是为什么在第一种情况下你输出的原因是:
suma1
suma25
suma29
suma79
suma83
suma84
因为System.out.println("suma" + suma);
正在执行names.length
次。
然而在第二种情况下:
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
循环只有一个语句可以执行names.length
次。输出打印在循环之外,这就是输出的原因:
The sum is: 55