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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么if语句中不用=,而是用了比较运算符==?:dizzy:

E7)P(UZ}B91)$3HA%0{(8(R.jpg (107.71 KB, 下载次数: 4)

有点不懂

有点不懂

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

8 个回复

倒序浏览
=号是 赋值哦。 if () 里的返回值 要是true or false  所以用==才可以

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
要分清 = 和==的意思。=可以赋值,==是作判断,
在你的例子里,假设是 num=1,代表的是把1赋值给num,也就是说num的值为1;
假设是 num==1,意思是 num相等于1,有作出判断:等不等于。
另外,if 后面跟的语句也要是判断语句,结果为布尔类型 ture或false

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
=是个赋值符号,==是个条件判断的符号,if(条件判断相等结果为true,不相等结果为false)。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
"="是直接赋值,“==”是比较运算符,是一种关系运算符,if 语句中括号里装的是判断的条件所以是用比较运算符

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
楼主只要搞明白if后面跟的那个括号里,无论怎么运算,最终的值必须是一个boolean类型的才可以。
普通的比较需要用“==”,
引用类型的比较可以用“equals”
用“=”号在有些情况下也是可以的,比如下面的这种
boolean flag = false;
if(flag=true)
flag赋值之后,还是一个boolean类型,符合if的规定,所以是可以的。


评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
l939 中级黑马 2014-3-2 10:17:38
7#
感谢楼主的问题,我对这块也是有点模糊的。。现在一下思路清晰了~~·
回复 使用道具 举报
谢谢各位的热心解答。。。
回复 使用道具 举报
if后面的括号中,是一个条件表达式,值为true或false,
“==”是一个比较运算符,返回值为true或false,
“=”是一个赋值语句,返回值为左值,如 If(b=true)就相当于if(true)
所以“=”和“==”都可使用, 其中"="只有在给变量赋boolean值是可用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马