java中检查多个条件和添加到计数器

java中检查多个条件和添加到计数器,java,android,conditional-statements,Java,Android,Conditional Statements,我尝试检查多个条件,并为Android中的每个条件添加到计数器。我在问是否有比我的解决方案更好的方法,特别是下面最后8行代码。我会写更多的条件 int [] bidCounter = new int[2]; deck = new ArrayList<>(); southdeck = new ArrayList<>(); for (int i = 0; i < 52; i++){ deck.add(i); } Collections.shuffle(

我尝试检查多个条件,并为Android中的每个条件添加到计数器。我在问是否有比我的解决方案更好的方法,特别是下面最后8行代码。我会写更多的条件

int [] bidCounter = new int[2]; 
deck = new ArrayList<>();
southdeck = new ArrayList<>();
for (int i = 0; i < 52; i++){
        deck.add(i);
}
Collections.shuffle(deck);
for (int i = 0; i<13; i++) {
    southdeck.add(deck.get(i));
}

if (playerdeck.contains(12)) bidCounter[0] ++;
if (playerdeck.contains(25)) bidCounter[0] ++;
if (playerdeck.contains(38)) bidCounter[0] ++;
if (playerdeck.contains(51)) bidCounter[0] ++;
if (!playerdeck.contains(12) && playerdeck.contains(11) && playerdeck.contains(10)) bidCounter[0] ++;
if (!playerdeck.contains(25) && playerdeck.contains(24) && playerdeck.contains(23)) bidCounter[0] ++;
if (!playerdeck.contains(38) && playerdeck.contains(37) && playerdeck.contains(36)) bidCounter[0] ++;
if (!playerdeck.contains(51) && playerdeck.contains(50) && playerdeck.contains(49)) bidCounter[0] ++;
int[]bidCounter=newint[2];
deck=newarraylist();
southdeck=新阵列列表();
对于(int i=0;i<52;i++){
甲板。添加(i);
}
收藏。洗牌(牌组);

for(int i=0;i检查的第一部分可以使用
for
循环来简化。当您检查玩家的手是否存在一组定义的值,并在每次获得匹配时将计数器增加1时,您可以创建一个预期匹配的数组,并对其进行迭代,如下所示:

for (int i : new int[] { 12, 25, 38, 51 }) {
    if (playerdeck.contains(i)) bidCounter[0]++;
}
通过在
for
语句的右侧声明,可以添加新的检查值

第二部分有点棘手,因为您要求两个值存在,一个值不存在。但是,假设您想要第一个值,想要第二个和第三个值,您可以使用如下二维数组:

int[][] compositeCheck = new int[][] {
    { 12, 11, 10 },
    { 25, 24, 23 },
    { 38, 37, 36 },
    { 51, 50, 49 }
};

for (int[] i : compositeCheck) {
    if (!playerdeck.contains(i[0])
            && playerdeck.contains(i[1])
            && playerdeck.contains(i[2])) {
       bidCounter[0]++;
    }
}

tl;dr如果您需要在多行上编写相同的代码,那么很有可能您可以在某种循环中执行。

如果我使用“If-else If”,请阅读有关
else
如果第一个条件为真,它将不会检查其他条件,但我需要的是检查所有条件,即使有多个条件为真。我错了@TimCastelijns吗?你可以链接许多
if-else
语句,只要它们是“外部”的我不明白。你的意思是,我只能用一条if-else语句来检查这8个条件吗?@user3170251我在我的另一条评论中添加了一个示例程序:看到了吗,尽管我有2条if-else语句,但它们仍然运行,因为它们一个接一个