亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 2D 數組無法將值寫入最后一個值索引

Java 2D 數組無法將值寫入最后一個值索引

喵喔喔 2022-01-12 16:37:54
我的 Java 2D 數組有問題。int y = 5;int x = 4;int[][] map = new int[y][x];for (int j = 0; j <= y ; j++) {    for (int l = 0; l <=x; l++) {        System.out.println("j: " + j + " l: " + l);        map[j][l] = 1;    }}Java 在到達數組中的最后一個值時拋出此異常:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4將 for 循環更改為“j < y”和“l < x”有助于解決問題,但第 5 列和第 4 行顯然沒有被打印出來。有什么辦法可以解決這個問題,我錯過了什么嗎?
查看完整描述

3 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

因為 Java 中0的數組是索引的,所以數組的長度不是有效的索引。因此,您應該在 for 循環中使用<而不是<=:


for (int j = 0; j < y; j++) {

    for (int l = 0; l < x; l++) {

        System.out.println("j: " + j + " l: " + l);

        map[j][l] = 1;

    }

}


查看完整回答
反對 回復 2022-01-12
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

從兩個循環中刪除等于


    int y = 5;

    int x = 4;

    int[][] map = new int[y][x];


    for (int j = 0; j < y; j++) {

        for (int l = 0; l < x; l++) {

            System.out.println("j: " + j + " l: " + l);

            map[j][l] = 1;

        }

    }

沒有第 5 列,因為它的大小是 5。所以索引像 0、1、2、3、4。第 4 行也是如此。由于該大小為 4,因此索引將變為 0、1、2、3


查看完整回答
反對 回復 2022-01-12
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

在java中,數組索引是從0length-1。

所以,在你的情況下, from 0toy-1 = 4和 from 0to x-1 = 3。你的輸出似乎完全沒問題。的第一個值j應該是 0。 有 5 個不同的值j, 有 4 個不同的值l

改回<=<在for循環。(這部分導致錯誤:l不能從04,只能從03


查看完整回答
反對 回復 2022-01-12
  • 3 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號