爲什麼此代碼不運行?對於循環和邏輯AND +或
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(i>0){
if((staticWallLoc[i--][j]&4)>0){staticWallLoc[i][j]=staticWallLoc[i][j]|1;}
}
if(j<10){
if((staticWallLoc[i][j++]&8)>0){staticWallLoc[i][j]=staticWallLoc[i][j]|2;}
}
if(i<10){
if((staticWallLoc[i++][j]&1)>0){staticWallLoc[i][j]=staticWallLoc[i][j]|4;}
}
if(j>0){
if((staticWallLoc[i][j--]&2)>0){staticWallLoc[i][j]=staticWallLoc[i][j]|8;}
}
System.out.println(i+" "+j);
}
}
順便說一句,staticWallLoc [11] [11]是一個二維數組,每個維度(0-10)有11個索引。
只是想知道爲什麼我的程序字面無法通過此代碼。
每次我看到這樣的問題,我感到困惑,一個非常好的主意。你有沒有嘗試過使用調試器? – 2012-07-29 23:13:09
那些後循環索引的增量和減量是可怕的!只需使用i-1和i + 1等作爲索引。 – John3136 2012-07-29 23:15:03
@ John3136我想你只是回答了這個問題;) – MadProgrammer 2012-07-29 23:16:27