我目前在大小爲4,2的二維數組中使用嵌套for循環。 當我運行我的程序,我在下面的行使用!null進行嵌套循環錯誤檢查不存在的元素
else if (state[i][j+1] != null
&& state[i][j].getFlash() <= state[i][j].getCycleLength()
&& state[i][j+1].getCycleLength() == state[i][j].getCycleLength()){
}
得到索引越界異常的報告說,索引越界爲2我會明白,如果我沒有檢查,看看錯誤[我] [j + 1]不爲空,但我不明白檢查的例外情況?我試着移動!null檢查,但程序在這一行仍然失敗。
任何幫助將不勝感激。
Stack trace:
Exception in thread "Timer-0" java.lang.ArrayIndexOutOfBoundsException: 2
at NatComp.data$1.run(data.java:67)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
你能發佈完整的堆棧跟蹤嗎?還有一些代碼顯示了你的數組的初始化? –
儘量不要放太多的條件和句子。另外,嘗試以面向對象的方式進行編程,以防止使用if語句。 –
你的循環在哪裏?當'j'處於最後的合法索引處時,使用'j + 1'作爲索引的可能性很大。 –