【问题标题】:Count the number of “trues” for n booleans [closed]计算 n 个布尔值的“真”数 [关闭]
【发布时间】:2014-08-14 07:18:14
【问题描述】:
public static boolean StarTrack[][][] = {
  {{true,true,true}, {true,true,true}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}},
  {{false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}},
  {{false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}},
  {{false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}, {false,false,false}, {false,false,false},
   {false,false,false}}
};

我想知道如何使用 java 计算该数组中的真数。 “我有这个数组,我想计算真数。我该怎么做?”

【问题讨论】:

  • 你可以这样做,通过使用循环和 if 条件
  • 我不会说这个问题是“不清楚的” - 对我来说似乎很清楚 OP 想知道如何使用 java 计算该数组中的真数。 “我有这个数组,我想计算真数。我该怎么做?”

标签: java


【解决方案1】:

如果我理解你,你可以用这个 -

int count = 0;
for (boolean[][] bArrArr : StarTrack) {
    for (boolean[] bArr : bArrArr) {
        for (boolean b : bArr) {
            if (b) {
                count++;
            }
        }
    }
}
System.out.println(count);

鉴于你的 StarTrack 我得到了输出

6

【讨论】:

  • 根据你的代码 b 总是假的?
  • @swap 没有。这是真的 6 次,上面给出了StarTrack
【解决方案2】:

由于数组是3维的,你可以尝试使用3个for循环:

int count = 0; 

for (int i = 0; i < StarTrack.length; i++) {
    for (int j = 0; j < StarTrack[i].length; j++) {
        for (int k = 0; k < StarTrack[i][j].length; k++) {
            if (StarTrack[i][j][k]) {
                count++;
            }
        }
    }
}

System.out.println(count); // 6

注意

if (StarTrack[i][j][k])

将检查数组StarTrack[i][j][k] 的元素的值是否为true。如果是,增加count

另一种方法,为了避免使用索引,是使用foreach 循环:

for (boolean[][] array2D: StarTrack) {
    for (boolean[] array1D : bArrArr) {
        for (boolean element : bArr) {
            if (element) {
                count++;
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2016-04-08
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多