C#-!= 和=! 有什么区别吗?

C#-!= 和=! 有什么区别吗?

虐人心 发布于 2017-07-18 字数 265 浏览 1195 回复 3

今天做一道题, 其中定义了一个bool flag=true的变量
但是,后来需要在循环里边让flag不等于自己,然后每一次循环 flag的值都在true和false之间来回跳跃
可是 我在循环里边 这样写 flag =! flag 可以
但是 这样写 flag != flag 却不行
请问是为什么?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

归属感 2017-09-06 3 楼

其实这么理解最容易 !=是一个二元操作符,是一个操作符。=!是一个二元操作符和一个医院操作符,是两个操作符

夜无邪 2017-09-06 2 楼

!= 是不等于(比较左右是否相等), 你flag != flag肯定一直是false
=! 其实没有这个运算符, flag =! flag 的意思是flag =(! flag), !flag是非操作, flag是bool变量, 只有false和true两个值, 刚好轮换为false和true

虐人心 2017-07-23 1 楼

!= 是表示“不等于”的意思,是一个判断,产生逻辑值,比如:

bool b1 = true;
bool b2 = false;

if ( b1 != b2 ) // 这个判断会得到 true
{
...
}

=! 并不是一个运算符,是两个运算符,flag =! flag,表示 flag = !flag,!flag 的意思是,取反操作,如果 flag 原来是 true ,那么 !flag 就是 false ,如果 flag 原来是 false ,!flag 就是 true。

bool flag = true;
flag = !flag;
这样 !flag 就是 false,然后赋值给 flag,执行完这条语句之后, flag 就等于 false 。