Re: [問題] 同樣程式碼 執行結果怎麼會不一樣

看板java作者 (..)時間17年前 (2007/04/28 18:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《Happyboy101 (風雨同路共送呂布)》之銘言: : class Miracle : { : public static void main(String args[]) : { : int Graph[][]={{0,1,1,1,0,0,0,0,0,0,0,0,1},{1,0,1,1,0,0,0,0,0,0,0,0,0}, : {1,1,0,1,0,0,0,0,0,0,0,0,0},{1,1,1,0,1,1,0,0,0,0,0,0,1}, : {0,0,0,1,0,1,1,0,0,0,0,0,0},{0,0,0,1,1,0,1,1,1,0,0,0,0}, : {0,0,0,0,1,1,0,1,0,0,0,0,0},{0,0,0,0,0,1,1,0,1,0,0,0,0}, : {0,0,0,0,0,1,0,1,0,1,0,0,0},{0,0,0,0,0,0,0,0,1,0,1,0,0}, : {0,0,0,0,0,0,0,0,0,1,0,1,0},{0,0,0,0,0,0,0,0,0,0,1,0,0}, : {1,0,0,1,0,0,0,0,0,0,0,0,0} : }; : //執行這段程式碼 會跑出ArrayIndexoutOfBoundsexception 產生exception的原因: 因為你的內層迴圈直接在最後加上分號,表示迴圈並沒有執行任何程式 就一直累加直到j=13才跳出迴圈,執行System.out.println(Graph[i][j]) 因為j=13,而你index的合法範圍為0~12,所以產生了exception 以上,就是問題所在 : /*int i,j; : for(i=0;i<13;i++) : { : for(j=0;j<13;j++); //這段程式碼是會產生exception的地方 : System.out.print(Graph[i][j]); : System.out.println(); : } : */ : //若採用這段程式碼 卻是順利執行 : //但這兩段程式明明是一模一樣的 怎麼會結果差很多 : //這可以算是奇蹟嗎? 還是這兩段程式有不同之處?希望有人能解惑 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.209.174.174
文章代碼(AID): #16CoCE_j (java)
文章代碼(AID): #16CoCE_j (java)