在 C 中, 检查bool表中的所有值是否为真的最好和最简单的方法是什么? 我试过这样的东西,但它不起作用
for(i = 0; i < value; i++){
if(bool_table[i] == 0)
table_true = 0;
else
table_true = 1;
}
此代码的问题在于,有时如果第一个值为true,则会设置table_true = 1
答案 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;