当前位置:  技术问答>java相关

if(boo=false)与if(boo==false)?

    来源: 互联网  发布时间:2015-08-22

    本文导语:  程序段: boolean boo = true; if(boo=false) System.out.println("false"); else System.out.println("true"); 输出true,为何可以if(boo=false)? | 因为boo=false后这个表达式的值事false,所以if条件为假,故而打出true. | ...

程序段:
boolean boo = true;
if(boo=false) System.out.println("false");
else System.out.println("true");
输出true,为何可以if(boo=false)?

|
因为boo=false后这个表达式的值事false,所以if条件为假,故而打出true.

|
楼上的 if (boo=true) 和 if(boo==false)这两者是完全的两个概念问题,并不等同!
前者是在赋值等同于if (true)而后者是在进行boolean类型的比较等同于if (true==false),显然true==false的结果是false
,所以间接等同于if (false)

|
if(boo=false)与if(boo==false)?

第一种写法是先执行boo=false赋值语句,然后再判断boo的值,相当于:

 boo=false;  --->  if(boo)

显然,该语句永远返回false(相当于if(false))

后者if(boo==false)是判断boo的值是否为false,是正确的写法!

换句话说,“=”是赋值符号,“==”是等于符号!

|
谁说无法编译的啊,你的不知道是什么编译器来的
你试试这两个程序:
boolean boo = true;
System.out.println(boo);
if(boo=false) System.out.println("false");
else System.out.println("true");
System.out.println(boo);
结果
true
true
false

程序2:
boolean boo = true;
System.out.println(boo);
if(boo=true) System.out.println("false");
else System.out.println("true");
System.out.println(boo);
结果2:
true
false
true
说来好多次是先附值再判断拉,还在骗其他人,不信试试看!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3