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吗?新手学习,实在不懂~~求教啊。
2 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
!:取反运算符(通俗点讲就是“颠倒是非”的运算符)
1) bool a = true;
a = !a ;--> !a: a本身为真,前面加个“!”,整个表达式“!a”就变成假了,并把这个结果赋给已定义的变量a,此时变量a的值已经变为假(false);
if(!a)-->由遇上步的赋值预算a已经由“真(true)”变为“假(false)”,这个表达式“!a”,在假前面加个“!”取反运算符合,假的取反就便成真,此时!a就是真(true)
莫回无
TA贡献1865条经验 获得超7个赞
!就是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();
添加回答
举报
0/150
提交
取消