本帖最后由 董霁辉 于 2013-3-21 15:14 编辑
public class TestSelectSort
{
public static void main(String[] args)
{
int[] arr = {3,42,3234,12,3425,765,87,90,1};
printArr(arr);
selectSort(arr);
printArr(arr);
System.out.println(arr[arr.length+10]);
}
public static void printArr(int[] arr)
{
System.out.print("{");
for(int x = 0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.println(arr[x]+",");
else
System.out.println(arr[x]+"}");
}
}
public static void selectSort(int[] arr)
{
for(int x = 0;x<arr.length+10;x++)
for(int y = x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
测试目的:打印数组角标以外的引用时,提示越界,第9行目的已达到。问题:在选择排序函数中,我刻意使外层循环x的值大于数组元素个数,原以为会在调用arr1[x]的时候提示越界,郁闷的是没有报错,还将数组进行了排序,求解 为什么调用arr1[x]的时候没有报错? |