usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace_8.运算符之逻辑运算符{classProgram{staticvoidMain(string[]args){//逻辑运算符也称条件布尔运算符boolb1=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);//&与&&、|与||,后者具有短路性质,前者没有此性质。//区别:两者都是检查第一个操作的值,再根据该操作数的值进行操作,可能根本不处理第二个操作数。inta=5,b=3;boolresult;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。**/