1、逻辑与(&&)
符号:&& (并且)
规则:对两个bool值进行逻辑运算(有假为假,同真为真)
bool result = true && false;
Console.WriteLine(result);//打印结果为 false
result = true && true;
Console.WriteLine(result);//打印结果为 true
result = false && true;
Console.WriteLine(result);//打印结果为 false
//bool相关的类型 bool变量 条件运算符
//逻辑与运算符优先级 低于 条件运算符 算术运算符
int i = 3;
result = i > 1 && i < 5;
Console.WriteLine(result);//打印结果为 true
2、逻辑或(||)
符号:|| (或者)
规则:对两个bool值进行逻辑运算(有真则真,同假为假)
bool result = true || false;
Console.WriteLine(result);//打印结果为 true
result = true && true;
Console.WriteLine(result);//打印结果为 true
result = false && true;
Console.WriteLine(result);//打印结果为 true
result = false && false ;
Console.WriteLine(result);//打印结果为 false
//bool相关的类型 bool变量 条件运算符
//逻辑或运算符优先级 低于 条件运算符 算术运算符
int i = 3;
result = i > 10 || i < 5;
Console.WriteLine(result);//打印结果为 false
注意:逻辑与和逻辑或都是先计算左操作数,在计算右操作数。逻辑与左操作数计算结果是假值时,则返回假值,无需计算右操作数,逻辑或左操作数计算结果是真值时,则返回真值,无需计算右操作数。
3.逻辑非
符号:!
规则:对两个bool值进行逻辑运算(真变假,假变真)
result = !false;
Console.WriteLine(result);//打印结果为 true
result = !true ;
Console.WriteLine(result);//打印结果为 false
result = !!true ;
Console.WriteLine(result);//打印结果为 true
//逻辑非的运算符较高
int i = 3;
//result = !i > 2;//报错
result = !(i > 2);
Console.WriteLine(result);//打印结果为 false
4.混合使用优先级问题
规则:!(逻辑非) 优先级最高 ,&&(逻辑与)优先级高于||(逻辑或)
逻辑运算符优先级 低于 算术运算符 和条件运算符(逻辑非除外)
bool gameOver = false;
int hp = 100;
bool isDead = false;
bool isMustOver = true;
bool result;
result = gameOver || hp < 0 && !isDead || isMustOver;
Console.WriteLine(result);//打印结果为 true
5.逻辑运算符短路规则
int i = 1;
bool result;
//||(有真则真) &&(有假则假)
//只要逻辑与或者逻辑或 左边满足条件,则抛弃后面,不去计算(短路)
//真||? 逻辑或遇见第一个判断条件为真,则该结果肯定为真,则抛弃后面,不去计算
result = i > 0 || ++i >= 1;
Console.WriteLine(i);//打印结果为 1
Console.WriteLine(result);//打印结果为 true
//真&&? 逻辑与遇见第一个判断条件为假,则该结果肯定为假,则抛弃后面,不去计算
result = i < 0 && ++i > 1;
Console.WriteLine(i);//打印结果为 1
Console.WriteLine(result);//打印结果为 false
版权声明:本文为Amateur_master原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。