public class ArrayTest {
static public void incr(int a[]) {
for (Integer i : a) {
i += 1;
}
}
static public void incr1(int a[]) {
for (int i = 0, len = a.length; i < len; i++) {
// a[i] = a[i] + 1;
a[i]++;
}
}
static public void main(String args[]) {
int a[] = { 1, 2, 3, 4, 5 };
for (int i : a)
System.out.print(i + " ");
System.out.println("\nforeach result:");
incr(a);
for (int i : a)
System.out.print(i + " ");
System.out.println("\n");
int b[] = { 1, 2, 3, 4, 5 };
for (int i : b)
System.out.print(i + " ");
System.out.println("\nfor loop result:");
incr1(b);
for (int i : b)
System.out.print(i + " ");
}
}
output:
1 2 3 4 5
foreach result:
1 2 3 4 5
1 2 3 4 5
for loop result:
2 3 4 5 6
foreach遍历的时候,相当于将数组中的值赋给相应的变量,所以对于 int array foreach循环,内部的修改不会影响原数组的值。