邏輯運算中的短路效應


常見的邏輯運算符有三種,即 “與 &”,“或 || ”,“非! ” 

短路效應發生在下面兩種情況:

  • if(A && B) // 若 A 為 false ,則 B 的判斷不會執行,提前跳出(即短路),判定 A && B 為 false
  • if(A || B) // 若 A 為 true ,則 B 的判斷不會執行,提前跳出(即短路),判定 A || B 為 true

 

不用判斷語句就實現邏輯判斷的效果,栗子:

題目:求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

class SolutionOfsumNums {
public:
    int res = 0;
    int sumNums(int n) {
        //求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)
        //乘除法 迭代  遞歸
        //return (1 + n) * n / 2;
        /*
        //遞歸算法
        if(n==1) return 1;
        n +=sumNums(n-1);
        return n;
        */

        // 為了實現題目要求,可以用邏輯運算中的短路效應實現 if(n==1)
 n > 1 && sumNums(n - 1); //長見識了
        res += n;
        return res;
    }
};

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM