作者rockfuture (..)
看板java
标题Re: [问题] 同样程式码 执行结果怎麽会不一样
时间Sat Apr 28 18:33:47 2007
※ 引述《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