可恶的Java数组下标越界检查

刚刚学习Java不到一个星期,本来是搞C++的,没事学习Java,将来可以更好的想Android方向发展一下。

现在正处于磨基础的阶段,对与每一个新手来书,最痛苦的莫过于此了。

写了一个冒泡排序,用C++的思想写,没有任何错误,但是改成Java就出现如下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
    at Range.paixu(c6_8.java:11)
    at c6_8.main(c6_8.java:29)

貌似自己没有遇到过,数组越界,C++都没有问题,怎么这里就有问题了。把自己的代码也贴出来吧。代码写的比较粗糙,没任何注释。

class Range
{
    void paixu(int arr[])
    {
        for (int i = 0; i <= arr.length - 1; i++)
        {
            int temp;
           
            for (int j = 0; j <= arr.length - i; j++)
            {
                if (arr[j] > arr[j + 1])
                {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
}

public class c6_8
{
    public static void main(String []args)
    {
        int arr[] = {2, 5, 1, 32, 21, 3, 8};
        Range r = new Range();
       
        r.paixu(arr);
       
        for (int j = 0; j < arr.length; j++)
        {
            System.out.print("  " + arr[j]);
        }
    }
}

 

对于一个新手来说,改这个有点难度。最后还是想到了,Java的下标越界检查啊。我的天啊。

检查了半天。不容易,该死的Java,可恨又可爱啊!

posted @ 2010-10-15 23:14  Java EE  阅读(1069)  评论(0编辑  收藏  举报