为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2021-10-07 07:07:41
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)

查看完整回答
反对 回复 2021-10-10
?
莫回无

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();

 


查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 415 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信