【问题标题】:Checking multiple condition and adding to counter in java在java中检查多个条件并添加到计数器
【发布时间】:2019-05-22 00:37:46
【问题描述】:

我正在尝试检查多个条件并为 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] ++;

【问题讨论】:

  • 了解else
  • 如果我使用“if - else if”并且如果第一个条件为真,它不会检查其他条件,但我需要的是检查所有条件,即使多个条件为真。 @TimCastelijns 我错了吗?
  • 您可以链接许多 if - else 语句,只要它们在彼此“外部”,例如 like this。
  • 我不明白。你的意思是,我可以只用一个 if - else 语句来检查这 8 个条件吗? @user3170251
  • 我在另一条评论中添加了一个示例程序:click me 看到即使我有 2 个 if -else 语句,它们仍然运行,因为它们一个接一个地出现

标签: java android conditional-statements


【解决方案1】:

可以使用for 循环简化检查的第一部分。当您检查玩家的手牌是否存在一组已定义的值,并在每次获得匹配时将计数器增加 1,您可以创建一个预期匹配数组并像这样迭代它们:

for (int i : new int[] { 12, 25, 38, 51 }) {
    if (playerdeck.contains(i)) bidCounter[0]++;
}

可以通过在for 语句的右侧声明它们来添加新的检查值。

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

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 如果您需要在多行上编写相同的代码,您可以改为在某种循环中完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2020-05-12
    • 2021-05-11
    相关资源
    最近更新 更多