首先说明,算数运算符的优先级大于逻辑运算符。
把这个单独拿出来记录一下,是因为他和PHP不一样。
不能习惯的使用PHP中的那套对于C#的逻辑运算符的逻辑。
1:&& 逻辑与运算符
实例:
bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(a && c){
Console.WriteLine(1);
}
if(a && b){
Console.WriteLine(2);
}
if(a && d){
Console.WriteLine(3);
}
if(b && d){
Console.WriteLine(4);
}
以上的输出结果只有1.重点来了
在PHP中,同真为真,同假也为真
在C#中,同真为真,同假为假。
2:|| 逻辑或运算符
实例:
bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(a || c){
Console.WriteLine(1);
}
if(a || b){
Console.WriteLine(2);
}
if(a || d){
Console.WriteLine(3);
}
if(b || d){
Console.WriteLine(4);
}
以上算式输出结果为123;
这个与PHP中的逻辑是一样的,只要有一个为真就是真。
两个都是假,才为假。
3:! 逻辑非运算符:说白了就是取反
bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(!(a || c)){
Console.WriteLine(1);
}
if(!(a || b)){
Console.WriteLine(2);
}
if(!(a || d)){
Console.WriteLine(3);
}
if(!(b || d)){
Console.WriteLine(4);
}
以上算式结果输出为4
上边已经说过。前三个等式为真,取反之后为假,所以,没有输出。只有最后一个算式,本身为假,取反之后为真。
测试使用代码:我是用的是控制台应用程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gc
{
class Program
{
/* C#主要的运行函数,就是main函数 */
static void Main(string[] args)
{
bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(!(a || c)){
Console.WriteLine(1);
}
if(!(a || b)){
Console.WriteLine(2);
}
if(!(a || d)){
Console.WriteLine(3);
}
if(!(b || d)){
Console.WriteLine(4);
}
}
}
}
最后总结一下:
&和&&:
相同点 : 两者都是表达当左右两边操作数都为真时,才为真.
不同点 : &运算符需要判断两边的操作数,而&&运算符则是根据第一个操作数的真假进而判断第二个操作数,也就是说当第一个操作数为假时,就不会再判断第二个操作数了,因为第一个操作数为假也就意味着无论第二个操作数真假,返回的结果都为假.
|和||:
相同点 : 两者都是表达当左右两边操作数有一个为真时,就返回真.
不同点 : |运算符需要判断两边的操作数,而||运算符则是根据第一个操作数的真假进而判断第二个操作数,也就是说当第一个操作数为真时,就不会再判断第二个操作数了,因为第一个操作数为真也就意味着无论第二个操作数真假,返回的结果都为真.
有好的建议,请在下方输入你的评论。
欢迎访问个人博客
https://guanchao.site
欢迎访问小程序: