读书人

为何排序之后显示全是0?

发布时间: 2012-09-22 21:54:54 作者: rapoo

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

不想打字了,看看书吧。

读书人网 >Java相关

热点推荐