1. 程式人生 > >程式設計菜鳥到大佬之路:C語言程式(五)

程式設計菜鳥到大佬之路:C語言程式(五)

第五天學習精要

關係運算符和邏輯表示式

關係運算符

  • 六種關係運算符用於數值的比較:相等 ==、不等 !=、大於 >、小於 <、大於等於 >=、小於等於 <=。

  • 比較的結果是bool型別,成立則為true,反之為false。

  • bool型別變數只有兩種取值,true或false,false等價於0, true等價於非0整型值。

# include <iostream>
using namespace std;
int main()
{
	int n1 = 4, n2 = 5, n3;
	n3 = (n1 > n2);	// n3的值變為0
	cout << n3 << ",";	// 輸出0, 
	n3 = (n1 < n2);	// n3的值變為1
	cout << n3 << ",";	// 輸出1,
	n3 = (n1 == 4);	// n3的值變為非0值
	cout << n3 << ","; // 輸出1,
	n3 = (n1 != 4); // n3的值變為0
	cout << n3 << ","; // 輸出0,
	n3 = (n1 == 5); // n3的值變為0
	cout << n3 ; // 輸出0
	return 0; 	
}

邏輯運算子和邏輯表示式

  • 邏輯運算子用於表示式的邏輯操作,有 &&,||,! 三種,操作的結果是true或false。

  • 與 &&:exp1 && exp2 當且僅當exp1和exp2的值都為真(或非0)時,結果為true。

  • 或 ||:exp1 || exp2 當且僅當exp1和exp2的值都為假(或0)時,結果為false。

  • 非 !:! exp exp值為真(或非0),結果為false,exp值為false(0),結果為true。

  • 邏輯表示式是短路計算的,即對邏輯表示式的計算,在整個表示式的值已經能夠斷定的時候即會停止

    • exp1 && exp2:如果已經算出表示式exp1為假,那麼整個表示式的值肯定為假,於是表示式exp2就不需要再計算。

    • exp1 || exp2:如果已經算出exp1為真,那麼整個表示式必定為真,於是exp2也不必計算。

      # include <iostream>
      using namespace std;
      int main()
      {
          int a = 0, b = 1;
          bool n = (a ++) && (b ++);	    // b++不被計算
          cout << n << endl;	    // 輸出0 
          cout << a << "," << b << endl;	    //輸出1,1
          n = a++ && b++;	    // a++和b++都要計算
          cout << a << "," << b << endl;	    //輸出2,2
          n = a++ || b++;	    // b++不被計算
          cout << a << "," << b << endl;     //輸出 3,2
          return 0;
      }
      

其他運算子及運算子優先順序

強制型別轉換運算子

  • 型別名本身就是一個運算子,叫“強制型別轉換運算子”,用於將運算元轉換為指定型別。

部分運算子的優先順序

  • 可以用()改變運算順序,勤用括號以避免優先順序錯誤在這裡插入圖片描述