2013-12-09 59 views
0

我想知道這個邏輯是否正確。函數通過compcards []得到一個讓數字1,2,3,4,5表示的數組,以及一個用戶輸入的數字,例如4.然而如果用戶猜測讓6表示它會返回false。我想要求用戶五次猜測存儲在compcards []中的數字。我想知道在這種情況下我的if else語句是否合理?布爾函數不起作用

bool checkIfCorrect(int checkcard, int compcards[]){ 
    for (int i=0; i<5; i++) 
    { 
     if(compcards[i] == checkcard) 
      cout<<"correct"<< endl; 
     return true;  
    } 
    return false; 
} 
+1

我只會從一個函數返回一個值或者在屏幕上打印某些東西,避免同時執行這兩個操作。 –

+0

對不起,不太瞭解。數組「compcards」的目的是什麼?它擁有什麼?用戶輸入還是正確答案? – nfoggia

+0

這可能也是有用的http://stackoverflow.com/questions/1090901/c-array-value-matching-variable –

回答

1

如下更改功能,

bool checkIfCorrect(int checkcard, int compcards[]){ 
    for (int i=0; i<5; i++) 
    { 
     if(compcards[i] == checkcard) 
     {  
      cout<<"correct"<< endl; 
      return true;  
     } 
    } 
    return false; 
} 

當2張卡都是平等的,你會return true(後打印出來"correct")。在這裏,您必須將return聲明包含在if條件中。