簡體   English   中英

如何檢查bool數組中的所有值是否為真?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM