import java.util.*;
public class random_for
{
public static void main(String args[])
{
int[] rand=new int[10];
System.out.println("随机数组:");
for(int i:rand)
{
rand[i]=(int)(100+Math.random()*200);
System.out.println(rand[i]);
}
Arrays.sort(rand);
System.out.println("排序后:");
for(int j:rand)
{
System.out.println(rand[j]);
}
}
}
------解决方案--------------------------------------------------------
这行错了:
for(int i:rand) {
rand[i]=(int)(100+Math.random()*200);
System.out.println(rand[i]);
}
foreach所循环的直接是元素,而不是下标,你可以循环里面增加:
System.out.println(i);
大致就理解为什么了。
要修改为:
for (int i=0;i<rand.length;i++) {
------解决方案--------------------------------------------------------
错误原因在于你还没有理解增强for循环
for(int i : rand)
i不是rand的index
不想打字了,看看书吧。