簡體   English   中英

為什么 bool 函數不返回 false?

[英]why doesnt the bool function return false?

很抱歉我搜索並閱讀了類似的問題,但無法理解/使用它們來解決我自己的問題。

我在 if 語句中編寫了一個 bool 函數,但該函數似乎沒有返回 false,我做錯了什么。

我的 bool 函數只是檢查數組中是否有多個給定數字:

bool findsame(int a[], int b){
    int k=0;
    for(int i=0;i<20;i++){
        if(a[i]==b){
            k++;
        }
    }
    if(k>1){
        
        return true;
    }
    else{
        return false;
    }
}


int main()
{
const int size=20;
int a[size]={4,4};
int b=4;
if(findsame(a,b)){
    cout<<"true";
    }
}

我想你很困惑為什么"false"沒有被打印在控制台上並且函數返回false值。

您需要添加一個額外的else語句以在控制台上打印false

if(findsame(a,b)){
    std::cout<<"true";
}else{
    std::cout<<"false";
}

此外,數組中有兩個 4 值,因此始終為true將被打印。

嘗試傳遞b值而不是 4 和 0。

看看下面的實現,其中變量b值等於1

#include<iostream>

bool findsame(int a[], int b){
    int k=0;
    for(int i=0;i<20;i++){
        if(a[i]==b){
            k++;
        }
    }
    if(k>1){
        
        return true;
    }
    else{
        return false;
    }
}


int main()
{
    const int size=20;
    int a[size]={4,4};
    int b=1;


    if(findsame(a,b)){
        std::cout<<"true";
    }else{
        std::cout<<"false";
    }
}

輸出:

false  

PS:我還測試了 b = 4 值的代碼,結果顯示為 true。 在此處檢查並運行代碼: https : //onlinegdb.com/S1LR5PtvD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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