2015-05-16 86 views
-2

對不起,但我只需要從函數返回布爾調用的解釋,我對自己不得不問這個問題感到非常失望。它是一個非常簡單的程序,但如果真的和即時猜測,返回沒有。我已經把這些問題放在了程序中,有人可以解釋一下發生了什麼。提前致謝。C++我需要一個解釋

int main() 
{ 
    for (int i = 0; i < 100; i++) 
    { 
     //check if prime, if it is print it 

     if (isPrime(i)) //does this say - if returns true, print? 
     { 
      cout << i << endl; 
     } 

    } 

    return 0; 
} 

bool isPrime(int num) 
{ 
    for (int i = 2; i < num; i++) 
    { 
     if (isDivisible(num, i)) { // not sure about this? 
      return false; 
     } 
    } 
    return true; 
} 

bool isDivisible(int number, int divisor) 
{ 
    return number % divisor == 0; // is this saying return true (if) num % div == 0 ? 
} 
+3

對這兩個問題的回答是肯定的。 –

+0

'if(x)'相當於'if(x == true)'。較短的版本通常被認爲是更好的風格。 –

+0

@AlanStokes我傾向於說'如果(x)'等於'if(x!= false)' – Christophe

回答

2

沒有必要進行比較,因爲如果你比較一些布爾btrue,其結果是b值。

測試if (isPrime(i))說「如果i是素數」。
你當然可以將它改寫爲更復雜的if (isPrime(i) == true) - 「如果i是真的」 - 但爲什麼會使事情複雜化?

同樣,if(isDivisible(num,i))的意思是「如果numi整除」,雖然「如果這是真的,numi整除」指的是同樣的事情,它只是不必要的。

最後,在isDivisible中,比較number % divisor == 0的值是truefalse
該函數返回該比較的結果。