如何阅读这个NOT运算符?

时间:2013-12-04 01:51:25

标签: java operators

我不明白粗体部分实际代表什么。如果我错了,请纠正我。

30不等于30是假或不是(17等于17(真)和20大于21(假))//我没有得到这一个,我只是翻转一切意思如-1在()之前声明如下: 17!=17(false) && 20<21(true).我迷失在这里。谢谢你的任何建议。

boolean m;
m = ((30!=30) || !(17==17 && 20>21))
SOP(m);

true ||假?

5 个答案:

答案 0 :(得分:0)

让我们考虑OR左边的比较...即30!= 30.这是错误的。所以

m = (false || !(17==17 && 20>21))

下一个17等于17,

m = (false || !(true && 20>21))

接下来的20不是&gt;那么21,那么错误....

m = (false || !(true && false))

下一个真假都是假的......所以

m = (false || !(false))

这使我们能够达到

m = (false || true)

所以

m = true

答案 1 :(得分:0)

!运算符适用于单个boolean类型,并返回其相反值。

让我们打破这一切:

(30!=30 || !(17==17 && 20>21))
(false  || !(true   && false))
(false  || !(      false    ))
(false  || true ))
(      true      )

答案 2 :(得分:0)

m将等于true,因为......

30!=30 = false

17==17 = true

20>21 = false

所以...

( false || ! ( true && false ) )

所以...

( false || ! false )

所以...

( false || true )

所以..

true

我总觉得可以说扩展你的计算很有帮助。

答案 3 :(得分:0)

此条件为 true

boolean m = (A || B)

此处A是(30!=30)

 and B is `!(17==17 && 20>21)`

显然,A false ;

!(17==17 && 20>21)等于!(true && false),等于!false,等于true

然后m = (A||B)等于(false || true)等于true

答案 4 :(得分:0)

让我们一步一步来看看。

最初的问题:

m = ((30!=30) || !(17==17 && 20>21))

我们知道30等于30所以30!= 30是假的:

m = ((false) || !(17==17 && 20>21))

因为它是一个或声明,我们可以删除错误部分:

m = !(17==17 && 20>21)

我们知道17等于17(或世界将会结束)而20则低于21所以:

m = !(true and false)

True和false的计算结果为false,因此我们有:

m = !false

这使得m成为true