2d数组使用if语句检查rows值

时间:2018-03-02 20:58:46

标签: java arrays

所以我试图循环遍历2d数组的行来检查该行是否与方法的属性匹配。如何使用if来检查行?这是我的代码

 public void recordWhiplashPoints(ConnectionToClient client, int vote){


    int[][] votecount = new int[game.getPlayers().length][0];


    outside:
    if(game.getRecordedAnswers() <= game.getPlayers().length){
    for (int i = 0; i < game.getPlayers().length; i++) {
        for (int q = 0; q < votecount.length; q++) {
            if(votecount[q] == vote){
                //do stuff
            }

        }
      } 
    }
}

所以votecount [row]是的。我可以将其与财产投票进行比较吗?

2 个答案:

答案 0 :(得分:1)

因此,对于二维数组(基本上只是一个数组数组),您可以使用类似votecount[i]的内容获取成员数组,并使用votecount[i][q]获得该数组的成员。我认为以下是您想要的代码:

int[][] votecount = new int[game.getPlayers().length][0];

outside:
if(game.getRecordedAnswers() <= game.getPlayers().length){
for (int i = 0; i < length; i++) {
    // note that we need to compare against the array votecount[i]
    for (int q = 0; q < votecount[i].length; q++) {
        // here we access the actual element votecount[i][q]
        if(votecount[i][q] == vote){
            //do stuff
        }
    }
  } 
}

答案 1 :(得分:0)

不确定这是否是您正在寻找的,但一种方法是使用for-each循环

public void recordWhiplashPoints(ConnectionToClient client, int vote){


int[][] votecount = new int[game.getPlayers().length][0];


outside:
if(game.getRecordedAnswers() <= game.getPlayers().length){
for (int[] i : votecount) {
    for (int q : i) {
        if(q == vote){
            //do stuff
        }

    }
  } 
}

}

本质上,第一个for-each循环遍历每个数组的2d votecount数组,然后第二个for-each循环遍历每个1D数组。如果您有任何问题,请询问。

但是,我不明白你的第二个if语句是真的,因为你永远不会改变其他任何默认值的投票数,这是一个填充了0的二维数组。