CS1L12——逻辑运算符
CS1L12——逻辑运算符
逻辑运算符
对两个 bool
进行逻辑运算,返回 bool
值
-
逻辑与
符号
&&
,规则 对两个bool
值进行逻辑计算 有假则假 同真为真
? && ?
,?
可以是写死的bool
变量 或者bool
值,还可以是条件运算符相关表达式1
2
3
4
5
6
7
8bool result = true && false;
Console.WriteLine(result);
result = true && true;
Console.WriteLine(result);
result = false && true;
Console.WriteLine(result);
result = false && false;
Console.WriteLine(result);输出:
1
2
3
4False
True
False
False
bool
相关的类型 条件运算符
与 和 或 这样的逻辑运算符的优先级低于条件运算符低于算数运算符1
2
3
4
5
6
7result = 3 > 1 && 1 < 2;
result = 3 > 1 && 1 < 2 - 1;
Console.WriteLine(result);
int i = 3;
result = i > 1 && i < 5;
Console.WriteLine(result);输出:
1
2False
True多个逻辑与 组合使用
在没有括号的情况下,从左往右看;有括号先看括号内
一旦遇到false就直接false, 无视后续的运算,尤其注意自增减,若被无视,则自增减不会发生1
2
3result = i2 > 1 && i2 < 5 && i > 1 && i++ < 5;
Console.WriteLine(result);
Console.WriteLine(i);输出:
1
2False
3 -
逻辑或
符号
||
规则 对两个bool
值进行逻辑运算 有真则真 同假则假
? || ?
,?
可以是写死的bool
变量 或者bool
值,还可以是条件运算符相关表达式一旦遇到
true
就直接true
, 无视后续的运算,尤其注意自增减,若被无视,则自增减不会发生1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16result = true || false;
Console.WriteLine(result);
result = true || true;
Console.WriteLine(result);
result = false || true;
Console.WriteLine(result);
result = false || false;
Console.WriteLine(result);
result = 3 > 10 || 3 < 5;
Console.WriteLine(result);
int a = 5;
int b = 11;
result = a > 1 || b < 20 || a > 5;
Console.WriteLine(result);输出:
1
2
3
4
5
6True
True
True
False
True
True -
逻辑非
符号
!
规则 对一个bool
值进行取反 真变假 假变真1
2
3
4
5
6
7result = !true;
Console.WriteLine(result);
result = !false;
Console.WriteLine(result);
result = !!true;
Console.WriteLine(result);输出:
1
2
3False
True
True注意:逻辑非的优先级高于算数运算符高于条件运算符,用的时候注意适时使用括号
1
2
3
4
5result = !(3 > 2);
Console.WriteLine(result);
a = 5;
result = !(a > 5);
Console.WriteLine(result);输出:
1
2False
True
逻辑运算符混合使用的优先级问题
规则: !
的使用优先级高于算数运算符高于条件运算符,||
低于 &&
,而低于条件运算符低于算数运算符
1 | bool gameOver = false; |
输出:
1 | True |
逻辑运算符短路规则
多个逻辑组合使用时,在没有括号的情况下,从左往右看,只要 逻辑与 或者 逻辑或 的组合式里左边满足了条件
就会抛弃后续的运算,尤其注意自增减,若被无视,则自增减不会发生
例如:
1 | result = i2 > 1 && i2 < 5 && i > 1 && i++ < 5; |
输出:
1 | False |
本课源代码
1 | namespace lesson12逻辑运算符 |
https://enjoysevenliu.github.io/2023/06/16/Unity就业路线学习笔记/CS——CSharp笔记/CS1——CSharp入门系列/CS1L12——逻辑运算符/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!