如何检查bool数组中的所有值是否为真?

时间:2015-11-09 19:22:58

标签: c arrays boolean

C 中, 检查bool表中的所有值是否为真的最好和最简单的方法是什么? 我试过这样的东西,但它不起作用

for(i = 0; i < value; i++){
            if(bool_table[i] == 0)
                table_true = 0;
            else
                table_true = 1;
    }

此代码的问题在于,有时如果第一个值为true,则会设置table_true = 1

3 个答案:

答案 0 :(得分:3)

这样的事情可以解决问题:

table_true = 1;
for(i = 0; i < value; i++)
        if (!bool_table[i]) {
            table_true = 0;
            break;
        }

答案 1 :(得分:3)

如果以下循环遍历整个数组而没有找到false条目,那么在循环结束时i将等于value

for(i = 0; i < value; i++)
    if ( !bool_table[i] )
        break;

table_true = (i == value);

答案 2 :(得分:1)

我不确定如何进行评估&#34; best&#34;或者&#34;最简单。&#34;是&#34;最好&#34;意味着最快?或者最少的代码行?最简单的,对初学者来说最简单吗?或者对于一群吃饭和睡眠C并定期使用指针的开发人员?

这是我有点不同寻常的方法:

bool *each = bool_table; // pointer to first element
bool *end = each + value; // stop condition
while (*each && each != end) {
    each++;
}
return each != end;