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);
// 逻辑赋值运算符
/**
* &= 等价于 = & ()
* |= 等价于 = | ()
* ^= 等价于 = ^ ()
*/
// !(逻辑非)不存在复合赋值运算符,因为要写成 != 会造成误解,认为是不等于运算符。
// 不存在&&=和||=复合赋值运算符。
Console.ReadKey();
}
}
}
/**
* ! (逻辑非) 如果操作数为false,结果为true;如果操作数为true,结果为false。
* & (逻辑与) 如果两个操作数都是true,结果为true,否则为false。
* | (逻辑或) 如果两个操作数都是false,结果为false,否则为true。
* ^ (逻辑异或) 如果两个操作数中有且仅有一个true,结果为true,否则为false。
*
* &&(逻辑与) 如果两个操作数都是true,结果为true,否则为false。
* ||(逻辑或) 如果两个操作数都是false,结果为false,否则为true。
*
*/
新闻名称:八、运算符之逻辑运算符
当前网址:
http://chengdu.cdxwcx.cn/article/jjgdoo.html