在下面两个for循环中,我首先给数组元素赋值,然后再将数组元素打印出来。可是运行结果显示我没有赋值呢?
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = new int[10];
for(int a : array){
a = (int)(Math.random()*100);
System.out.print(a + ";");
}
for(int a : array){
System.out.print(a + ";");
}
}
运行结果如下:
26;82;64;78;99;13;13;34;91;39;0;0;0;0;0;0;0;0;0;0;
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = new int[10];
for(int a : array){
a = (int)(Math.random()*100);
System.out.print(a + ";");
}
for(int a : array){
System.out.print(a + ";");
}
}
运行结果如下:
26;82;64;78;99;13;13;34;91;39;0;0;0;0;0;0;0;0;0;0;
a = (int)(Math.random()*100);
System.out.print(a + ";");
}
天,这样是遍历array的值,也就是把值取出来,是不能存值的
你看清楚,这个a是只有在这个for循环内才有效的
for(int i = 0;i<array.length;i++){
int a = (int)(Math.random()*100);
System.out.print(a + ";");
}
这你你赋值的是for循环里的局部变量.
因为:此时的a是一个临时变量(它不是数组元素array[i]),因而:对a的赋值,不会对数组array有影响.即:达不到对array中元素赋值的目的.
还是使用:
for(int i=0;i<array.length;i++)
{
array[i]=...;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = new int[10];
for(int i=0;i<array.length;i++){
int a=(int)(Math.random()*100);
System.out.print(a+";");
array[i]=a;
}
System.out.println();
for(int i=0;i<array.length;i++){
System.out.print(array[i]+";");
}
}
运行结果:
36;47;12;27;54;34;34;61;9;44;
36;47;12;27;54;34;34;61;9;44;
希望你能自己看出来为什么你那里没有附值成功...