关于bool类型if判断的问题,具体看下面代码!

int i = 1;

bool a =true ;
if (i == 1)
{
a = !a;
if (!a)
{
Console.WriteLine("{0}", a);

}

}
Console.WriteLine("{0}", a);
Console.ReadKey();

int i = 1;

bool a =false ;
if (i == 1)
{
a = !a;
if (!a)
{
Console.WriteLine("{0}", a);

}

}
Console.WriteLine("{0}", a);
Console.ReadKey();

这2个!a到底是什么值?2个都是false吗,第一个代码a=!a 那么if(!a)中的!a不就是true吗?
新手学习,实在不懂~~求教啊。


函数式编程
浏览 416回答 2
2回答

宝慕林4294392

!:取反运算符(通俗点讲就是“颠倒是非”的运算符)1) bool a = true;a = !a ;--> !a: a本身为真,前面加个“!”,整个表达式“!a”就变成假了,并把这个结果赋给已定义的变量a,此时变量a的值已经变为假(false);if(!a)-->由遇上步的赋值预算a已经由“真(true)”变为“假(false)”,这个表达式“!a”,在假前面加个“!”取反运算符合,假的取反就便成真,此时!a就是真(true)

莫回无

!就是not的意思。 a = true !a = not true = false;int i = 1;bool a =true ;if (i == 1){a = !a; //把false值赋给a了。if (!a) //注意这里还有个!.not false = true,所以该判断为真{Console.WriteLine("{0}", a);}}Console.WriteLine("{0}", a);Console.ReadKey();int i = 1;bool a =false ;if (i == 1){a = !a; //把not false = true赋值给a了if (!a) //注意!号。 not true = false。所以该判断不成立{Console.WriteLine("{0}", a);}}Console.WriteLine("{0}", a);Console.ReadKey(); 
打开App,查看更多内容
随时随地看视频慕课网APP