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

为什么是true?不应该是false么?

https://img1.sycdn.imooc.com//5bd132d1000178c711360766.jpg为什么是true?不应该是false么?

正在回答

8 回答

这个是和运算符的优先级有关系,不加括号的写法实际上先运算的是 !numa(返回false,为0),然后对0和numb比较,很显然0<70,所以返回true

如果你加上给numa<numb加上括号的话,优先比较numa<numb,返回true,!true=false。

所以你得到的结果会是true,而不是false。

如果我没讲明白的话,可以去了解一下运算符的优先级哦。

1 回复 有任何疑惑可以回复我~

要加个括号

0 回复 有任何疑惑可以回复我~

大哥,你这是什么呀:jq1=!numa<numb;

没明白你这样写是什么意思。


0 回复 有任何疑惑可以回复我~

数字非0自动转boolean类型时都是true所以!numa为false,然后false<numb比较,false自动转为数值类型0和numb=70作比较,所以最后得到了true;

0 回复 有任何疑惑可以回复我~

你这就像是1+5*5为什么30的问题。

0 回复 有任何疑惑可以回复我~
#1

慕侠2155777

写错了 是为什么不是30的问题
2018-12-20 回复 有任何疑惑可以回复我~

打个括号把numa<numb框起来就可以了    jq1=!(numa<numb);

0 回复 有任何疑惑可以回复我~

打个括号把numa<numb框起来就可以了

0 回复 有任何疑惑可以回复我~

应该是jql!=numa<numb

你这样写可能系统没有识别到,自动认为是等于

0 回复 有任何疑惑可以回复我~
#1

慕前端025905 提问者

嗯,谢谢
2018-10-25 回复 有任何疑惑可以回复我~
#2

慕前端025905 提问者

不是,是因为先后顺序
2018-10-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么是true?不应该是false么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信