数组相关常见的三种错误

1.数组声明时数据类型不匹配

错误写法:

public class Test_0506{
    public static void main(String[] args) {
        // 定义的是int类型数组,但实际是String类型
        int [] array = new String[3];
     }
}

Eclipse会提示错误信息,Type mismatch: cannot convert from String[] to int[],如下图提示将array类型改为String[]。

 

 

 正确写法:

public class Test_0506{
    public static void main(String[] args) {
        String[] array = new String[3];
    }
}

2.边声明边赋值必须写在同一行

错误写法:

public class Test_0506{
    public static void main(String[] args) {
        int [] array = new int[3];
        array = {10, 20, 30};
        array2 = {10. 20, 30};
    }
}

运行代码,报错信息为Array constants can only be used in initializers,英文不好,通过翻译软件知道报错内容是“数组常量只能在初始值设定项中使用

如下图

 

 

 正确写法:

public class Test_0506{
    public static void main(String[] args) {
        int [] array = new int[3];
        array[0] = 10;
        array[1] = 20;
        array[2] = 30;
        int [] array2 = new int [3];
        array2[0] = 10;
        array2[1] = 20;
        array2[2] = 30;
    }
}

3.数组下标越界

错误写法:

public class Test_0506{
    public static void main(String[] args) {
        int[] array = {10, 20, 30};
        System.out.println(array[3]);
    }
}

数组下标是从0开始,从上述代码可以看出来数组长度是3,下标界限就是0~2,所以array[3]超出下标界限,运行报错信息如下:

 

 

 java.lang.ArrayIndexOutOfBoundsException表示错误原因是数组下标越界。

正确写法:

public class Test_0506{
    public static void main(String[] args) {
        int[] array = {10, 20, 30};
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
    }
}

运行结果:

 

posted @ 2020-05-06 15:59  Mr.Gavin  阅读(1805)  评论(0编辑  收藏  举报