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