如果我有
int win[][] ={{1,2,3},{4,5,6},{7,8,9},{1,4,7},{2,5,8},{3,6,9},{1,5,9},{3,5,7}};
我能以这种方式放置条件吗?
if(((win[0][0]) && (win[0][1]) && (win[0][2]))||
((win[1][0]) && (win[1][1]) && (win[1][2]))||
((win[2][0]) && (win[2][1]) && (win[2][2]))||
((win[3][0]) && (win[3][1]) && (win[3][2]))||
((win[4][0]) && (win[4][1]) && (win[4][2]))||
((win[5][0]) && (win[5][1]) && (win[5][2]))||
((win[6][0]) && (win[6][1]) && (win[6][2]))||
((win[7][0]) && (win[7][1]) && (win[7][2]))||
((win[8][0]) && (win[8][1]) && win[8][2])))
答案 0 :(得分:2)
你的数组是8x3,意味着最后一个元素是win[7][2]
。因此调用win[8][0]
会抛出ArrayIndexOutOfBounds
异常。如果您更正此错误,您的代码将起作用。希望这会有所帮助。
答案 1 :(得分:1)
为了更清晰的版本,为什么不尝试:
for(int i = 0; i < 8; i++) {
if(win[i][0] && win[i][1] && win[i][2]) {
doStuff();
break;
}
}
答案 2 :(得分:-1)
如果您的目标完全混淆了读者 - 您可以