[英]How to check if all values in bool array are true?
在C中 ,檢查bool表中的所有值是否為真的最佳和最簡單的方法是什么? 我試過這樣的東西,但它不起作用
for(i = 0; i < value; i++){
if(bool_table[i] == 0)
table_true = 0;
else
table_true = 1;
}
這段代碼的問題在於,有時如果第一個值為true,那么它將設置table_true = 1
像這樣的東西應該做的伎倆:
table_true = 1;
for(i = 0; i < value; i++)
if (!bool_table[i]) {
table_true = 0;
break;
}
如果以下循環遍歷整個數組而沒有找到false
條目,那么在循環結束時, i
將等於value
for(i = 0; i < value; i++)
if ( !bool_table[i] )
break;
table_true = (i == value);
我不確定如何評價“最佳”或“最簡單”。 “最好”意味着最快嗎? 或者最少的代碼行? 最簡單的,對初學者來說最簡單嗎? 或者對於一群吃飯和睡眠C並定期使用指針的開發人員?
這是我有點不同尋常的方法:
bool *each = bool_table; // pointer to first element
bool *end = each + value; // stop condition
while (*each && each != end) {
each++;
}
return each != end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.