日期:2014-05-20  浏览次数:20866 次

为什么排序之后显示全是0???
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

不想打字了,看看书吧。