本帖最后由 qwert 于 2011-12-15 22:50 编辑
int max = 0 ,首先你需要明白的就是max身为角标,它的初始化值为0,也就是说是arr[0];
如果有数组int[] arr = {2,4,6,8};
这时arr[max](这里的max还是0)初始化就是数组内第一个元素,也就是arr[0],也就是数组内的2。
然后是循环体
for(int x=1;x<arr.length;x++)
{
if (arr[max]<arr[x]; //你可以先理解第一个循环。首先,这里我们知道max的值为0,x的值为1,也就是说if (arr[0]<arr[1]),那么max=x,也就是说把数值大的那个数组内元素的角标
给max,这时候max就不是0了,而是1.然后进入下一循环,x++,这时x为2,则有 如果arr[max](这里max已经为1了,也就是数组元素中的4)<arr[x](这里的 x 为2,也就是数组中的6),就把6在数组中的角标给max,依次类推。也就是说,这样循环下来,max存的是数组内最大的那个元素的角标,而不是0。除非第一个数值就是最大的,如int [] arr={8,6,4,2};这样的话,arr[max]=arr[0]。 希望没有越说越乱哦。。。
}
}
晕死,刚才卡了,连着发了两次。。请斑竹大人帮我删一个。。。 |