A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 荔荔舟 中级黑马   /  2016-10-9 13:16  /  1588 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

E:\1.jpg
E:\2.jpg

11 个回复

倒序浏览
图片没传好。。

1.PNG (19.54 KB, 下载次数: 22)

1.PNG

2.PNG (18.12 KB, 下载次数: 19)

2.PNG
回复 使用道具 举报
为什么两种情况运行结果都是false。"="情况下会有黄色警告提示m没有被使用,而"=="情况下没有这种情况
回复 使用道具 举报
=是赋值, ==是判断是否相等. 黄线是因为你将true赋值给m,但是在if语句中又重新给它赋值的原因
回复 使用道具 举报
=会先赋值后判断,等等于你懂啦
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
第一个 是 false值赋给m if(false)  输出false
第二个 是 m值为true 和false== 后判定为false if(false) 输出false
回复 使用道具 举报
langyabang1110 发表于 2016-10-9 14:19
第一个 是 false值赋给m if(false)  输出false
第二个 是 m值为true 和false== 后判定为false if(false) 输 ...

嗯 懂啦~~
回复 使用道具 举报
醉醒 中级黑马 2016-10-9 16:59:20
8#
图1 是赋值,将fals赋值给m,则if判断句中是false,而遇到false则执行else

图2 是判断,m在if之前赋值为true,在if语句里进行true与false的判断,结果为false,执行else语句
回复 使用道具 举报
Jarc 高级黑马 2016-10-9 20:16:43
9#
=是赋值,你赋值false,那你它就是假,true就是真。==是判断,条件成立为真,否则为假
回复 使用道具 举报
本帖最后由 skyleon 于 2016-10-9 20:55 编辑

这两个运算符本来就有区别啊,难道还分场合的有区别?
首先,"="是赋值运算符,它的作用就是将"="右边的值赋给左边. 它扩展的赋值运算符:+=, -=, *=, /=, %= ,拿+=来说,就是把左边和右边做加法,然后赋值给左边,其余扩展赋值运算符效果以此类推.

其次,"=="是关系(条件或者比较)运算符,这个运算符的作用是判断"=="左右两边的值是否相等,运算结果是布尔(boolean)类型,相等就为true不相等为false.

第一种情况:
if(m = false )在括号内将false赋给布尔类型的变量m,由于if后括号内是false,所以执行else语句,输出false.
第二种情况:
if(m == false )括号内是一个比较表达式,其作用就是比较布尔类型变量m的值和false是否相等,由前面知道m的值为true,显然不相等,比较表达式的结果为false.if后括号内是false,执行else语句,输出false.

虽然两种情况都是由于if(false)执行else语句,输出false,但是if后面的false的来源不同,第一中情况是执行赋值语句直接得到的,第二种情况是执行比较运算后得到的.

评分

参与人数 1黑马币 +5 收起 理由
荔荔舟 + 5 谢谢哥们写那么多。。我该多思考下的.

查看全部评分

回复 使用道具 举报
两个不一样的东西,你居然不知道
回复 使用道具 举报
第一张图片是将false赋值给m;   =  赋值
第二章图片是将m代表的(true)与 false比较 ;  == 比较运算符
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马