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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 踏雪风暴 中级黑马   /  2014-6-23 21:07  /  2508 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 踏雪风暴 于 2014-6-24 10:26 编辑

boolean b = true;
if(b=false)
System.out.println("a");

这个题是有结果的,但我想知道为什么if(b=false)  这样可以的 ?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

23 个回复

倒序浏览
本帖最后由 踏雪风暴 于 2014-6-23 21:09 编辑

对于for(b==false)  这样的我到是可以理解的
回复 使用道具 举报
- -看起来好怪 ,我没试过,不过要是我,会把 if(b=false) 写成  if(!b)   而且你说的有结果是什么意思?是说可以打印出结果吗?因为你if(){};没有大括号啊,不知对不对,随便回答一下,没电脑也没测试条件
回复 使用道具 举报
楼主,因为b本来就是一个boolean型变量啊,它的取值只能是false或者true,==,>=,<=等运算符是判断表达式,结果也只能是false或者true,所以if后面的条件不论怎么写都只能是false或者true,只是表达方式不一样,楼主还需继续学习基础知识啊
回复 使用道具 举报
keep_moving 发表于 2014-6-23 22:09
楼主,因为b本来就是一个boolean型变量啊,它的取值只能是false或者true,==,>=, ...

好像是我的问题没有问明白,你说的我又似懂非懂,我想问的是if(b=false)  这个为什么是成立的,其中的 = 的作用是什么,赋值吗?还是什么
回复 使用道具 举报
if(b=false)
括号里面赋值, 恒为假。
应该可以相当于    if(0)

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 2 0
alive 中级黑马 2014-6-23 22:30:03
7#
if(b=false)  就是把false赋值给b, 这里不是判断
回复 使用道具 举报
不是很清楚 ,求大神解释
回复 使用道具 举报
我也是来学习的,,看看学习下!!!
回复 使用道具 举报
J.twt 中级黑马 2014-6-23 22:57:27
10#
小弟刚刚学java,我觉得是if(b=false)这条语句是先见false的值赋值给boolean型变量b,然后在判断其值的真假
回复 使用道具 举报
伍叶竹 发表于 2014-6-23 22:25
if(b=false)
括号里面赋值, 恒为假。
应该可以相当于    if(0)

赞一个!
回复 使用道具 举报
赋值语句是有返回值的。对于java,返回值就是所赋的那个值:
b=false;这条赋值语句的返回值是false
b=ture;返回值是true

用System.out.println(b=true);还可以打印出来看。
回复 使用道具 举报
和while(true)是一样的,为了弄一个死循环
回复 使用道具 举报
这就是一个条件判断,当if括号中的条件满足时,执行if语句,语法没问题
回复 使用道具 举报
Akm 黑马帝 2014-6-24 11:36:34
15#
所以 为了防止这样的错误,  通常程序员会把false true 写到前边.  if(false=b) 这样编译器就会报错
回复 使用道具 举报
踏雪风暴 发表于 2014-6-23 22:20
好像是我的问题没有问明白,你说的我又似懂非懂,我想问的是if(b=false)  这个为什么是成立的,其中的 =  ...

“=”的作用就是赋值,因为你把b定义成了一个boolean型变量,所以你可以把false赋给变量b
回复 使用道具 举报
这个if(b=false)  先执行括号里的赋值语句.   b这时候等于false
  然后再判断if语句 if(b)
回复 使用道具 举报
其实就是个赋值,
回复 使用道具 举报
導ぷ仙″兲蕐 来自手机 中级黑马 2014-6-24 22:13:41
19#
=是负值==是判断来自: iPhone客户端
回复 使用道具 举报
明白了。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马