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。 * */
转载于:https://blog.51cto.com/vikxiao/1586115