八、運算符之邏輯運算符

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _8.運算符之邏輯運算符
{
    class Program
    {
        static void Main(string[] args)
        {
            // 邏輯運算符也稱條件布爾運算符
            bool b1 = true, b2 = false;
            Console.WriteLine("!{0} = {1}", b1, !b1);
            Console.WriteLine("!{0} = {1}", b2, !b2);
            Console.WriteLine("{0} & {1} = {2}", b1, b2, b1 & b2);
            Console.WriteLine("{0} | {1} = {2}", b1, b2, b1 | b2);
            Console.WriteLine("{0} ^ {1} = {2}", b1, b2, b1 ^ b2);
            
            // &與&&、|與||,後者具有短路性質,前者沒有此性質。
            // 區別:兩者都是檢查第一個操作的值,再根據該操作數的值進行操作,可能根本不處理第二個操作數。
            int a = 5, b = 3;
            bool result;
            
            result = true & a++ > 6;
            Console.WriteLine("a = {0}, result = {1}", a, result);
            
            a = 5;
            result = false && a++ > 6;
            Console.WriteLine("a = {0}, result = {1}", a, result);
            
            result = false | b++ > 5;
            Console.WriteLine("a = {0}, result = {1}", b, result);
            
            b = 3;
            result = true || b++ > 5;
            Console.WriteLine("a = {0}, result = {1}", b, result);
            
            // 邏輯賦值運算符
            /**
             * <variable> &= <expression> 等價於 <variable> = <variable> & (<expression>)
             * <variable> |= <expression> 等價於 <variable> = <variable> | (<expression>)
             * <variable> ^= <expression> 等價於 <variable> = <variable> ^ (<expression>)
             */
             
            // !(邏輯非)不存在複合賦值運算符,因爲要寫成 != 會造成誤解,認爲是不等於運算符。
            // 不存在&&=和||=複合賦值運算符。
            
            Console.ReadKey();
        }
    }
}

/**
 * ! (邏輯非)    如果操作數爲false,結果爲true;如果操作數爲true,結果爲false。
 * & (邏輯與)    如果兩個操作數都是true,結果爲true,否則爲false。
 * | (邏輯或)    如果兩個操作數都是false,結果爲false,否則爲true。
 * ^ (邏輯異或)  如果兩個操作數中有且僅有一個true,結果爲true,否則爲false。
 * 
 * &&(邏輯與)    如果兩個操作數都是true,結果爲true,否則爲false。
 * ||(邏輯或)    如果兩個操作數都是false,結果爲false,否則爲true。
 * 
 */


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章