📜  代码优化技术(逻辑与和逻辑或)

📅  最后修改于: 2021-04-29 02:38:47             🧑  作者: Mango

逻辑与(&&)

在使用&&(逻辑AND)时,我们必须首先将条件变为假的可能性很高,这样,如果第一个条件为假,则编译器无需检查第二个条件。

#include 
  
// Function to check whether n is odd
bool isOdd(int n);
  
// Function to check whether n is prime
bool isPrime(int n);
  
int main()
{
    int cnt = 0, n = 10;
  
    // Implementation 1
    for (int i = 2; i <= n; i++) {
        if (isOdd(i) && isPrime(i))
            cnt++;
    }
  
    cnt = 0;
    n = 10;
  
    // Implementation 2
    for (int i = 2; i <= n; i++) {
        if (isPrime(i) && isOdd(i))
            cnt++;
    }
}

考虑上面的实现:

逻辑或(||)

在使用||时(逻辑或),我们必须首先将条件变为真的可能性很高,这样,如果第一个条件为真,则编译器无需检查第二个条件。

#include 
  
// Function to check whether n is odd
bool isEven(int n);
  
// Function to check whether n is prime
bool isPrime(int n);
  
int main()
{
    int cnt = 0, n = 10;
  
    // Implementation 1
    for (int i = 3; i <= n; i++) {
        if (isEven(i) || !isPrime(i))
            cnt++;
    }
}

注意:对于较大的输入,语句的执行顺序可能会影响程序的总体执行时间。