數組相關常見的三種錯誤


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]);
    }
}

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM