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

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

如何初始化一個二維數組?

如何初始化一個二維數組?

慕娘9325324 2022-12-28 15:41:09
我在初始化數組時遇到問題。當我嘗試繪制數組時,我得到了一個NullPointerException.我需要訪問我從另一個類聲明數組的類,這就是為什么它是static.這是我的代碼:static int[][] DayOfTheMonth = new int[3][10];public static void ArrayValue() {    for (int column = 0; DayOfTheMonth.length < 4; column++) {        for (int row = 10; DayOfTheMonth[column].length < 10; row++) {            if (DaysofTheMonth <= Tag.MaximumDaysOfAMonth()) {                DayOfTheMonth.[column][row] = Date.getDate() + DaysofTheMonth;                DaysofTheMonth++;            } else if (DaysofTheMonth > Tag.MaxDay()) {                DaysofTheMonth = 1;                if (Month != 12)                    Month++;                else {                    Month = 0;                    Year++;                }            }        }    }}另一個問題是,當我嘗試通過我的主類訪問該方法時,它說:Exception in thread "Main" java.lang.ArrayIndexOutOfBoundsException: 3
查看完整描述

2 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

ArrayIndexOutOfBoundsException聲明您正在嘗試訪問不存在的元素和索引,因此,

在這一行中:

for (int column = 0;  DayOfTheMonth.length < 4; column++)

你已經指定去ForLoop 去無限,因為長度總是小于 4 所以你需要有column像這樣的條件

for (int column = 0;  column < DayOfTheMonth.length; column++)

所以讓它循環直到 3,因為它將從 0 開始并上升到 3。

為了清楚起見,還有一件事是第一件事是行,第二件事是列,所以你有 3 行和 10 列,雖然它只是相關naming-problem但你應該清楚它。


查看完整回答
反對 回復 2022-12-28
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

這是2個問題。我無法回答第一個,因為您沒有說明異常發生的位置,而且我不知道您所說的“繪制”數組是什么意思。

其次,您的問題在這里(以及類似的地方):

for (int column = 0; DayOfTheMonth.length < 4; column++)

DayOfTheMonth.length將始終評估為 3,因此column將繼續增加。你可能想要的是

for (int column = 0; column < DayOfTheMonth.length; column++)

關于這是否是唯一的問題,我不作任何聲明。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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