如果条件在阵列上

时间:2011-11-11 13:50:04

标签: android

如果我有

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]))) 

3 个答案:

答案 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)

如果您的目标完全混淆了读者 - 您可以