社区
Java SE
帖子详情
if(boo=false)与if(boo==false)?
JackJia
2002-09-02 10:06:10
程序段:
boolean boo = true;
if(boo=false) System.out.println("false");
else System.out.println("true");
输出true,为何可以if(boo=false)?
...全文
1496
24
打赏
收藏
if(boo=false)与if(boo==false)?
程序段: boolean boo = true; if(boo=false) System.out.println("false"); else System.out.println("true"); 输出true,为何可以if(boo=false)?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guo_com
2002-09-03
打赏
举报
回复
在IF语句中,不管boo=false还是boo=true,编译器无法解析该语句,返回的结果都是false,所以始终输出else的内容;如果是==则编译器能解析,执行相应支路语句.
weny666
2002-09-03
打赏
举报
回复
如果你用的是java,很可能是高速缓存没有清空导致,编译前,先把前面编译好的类文件删除,再重新编译、运行,就应该可以了!
weny666
2002-09-03
打赏
举报
回复
2
if(boo=false)与if(boo==false)?
第一种写法是先执行boo=false赋值语句,然后再判断boo的值,相当于:
boo=false; ---> if(boo)
显然,该语句永远返回false(相当于if(false))
后者if(boo==false)是判断boo的值是否为false,是正确的写法!
换句话说,“=”是赋值符号,“==”是等于符号!
p_tangnj
2002-09-03
打赏
举报
回复
在if,while等命令后的()中是允许赋值的,
boo = true 其实和 while((line=readLine(lineArr,ai))!=null){}中line 的 line=readLine(lineArr,ai)一样,是赋值语句。
我认为编译时是将值先付给boo然后用boo的值作为判断的条件
就像楼上playgb(溯缘)说得那样
if(boo=false)
相当于
boo = false;
if (boo)
{}
qqf
2002-09-03
打赏
举报
回复
各位!都说是先赋值后判断,不过小弟“以身试法”不成功!希望大家继续努力!搞懂这个东东,我看现在大家好像好迷糊了,和小弟一样,希望大家一起去找答案。人多力量大嘛!呵呵呵……
qqf
2002-09-03
打赏
举报
回复
楼上的弟兄说得不对,小弟试一试。
无论你是
“boolean boo = true;
if(boo=false) System.out.println("false");
else System.out.println("true");”
这样还是
boolean boo = true;
if(boo=true) System.out.println("false");
else System.out.println("true");
输出的结果都是“true”!换一句话也就是说,无论你如何判断,都将输入同一个结果。具体的什么小弟就不知道了!希望与大家共同研究讨论这个问题。小弟非常之关注和!!!!!!
小弟有一大胆的猜测不知道通通不,不过努力的想总是不会错的吧!
可能是表达式有错,系统直接认为是错误!或者是当系统运行到
if (boo=false) System.out.println("false");
只给boo赋值为false,再判断,不过话又说回来了,给boo赋值后为假才打印出"true",不过我给boo赋值为真也不打印出"false"。这是为什么?小弟现在迷茫了,兄弟们救救我,HELP ME!!!
???????????????????????????????????????????????????????????????????????
playgb
2002-09-03
打赏
举报
回复
if(boo=false)
是先赋值后判断
相当于
boo = false;
if (boo)
{}
Jim_OU
2002-09-03
打赏
举报
回复
不好意思,测试后原来是先附值后判断
Jim_OU
2002-09-03
打赏
举报
回复
执行完上面的程序boo就变为flase了,先判断后附值
Jim_OU
2002-09-03
打赏
举报
回复
我倒觉得应该这样理解:
if(boo=false)
就相当于:
if(boo){}
boo=false;
因为先前boo已经等于true了所以if(boo)肯定成立拉,就是说if(boo=false)这个成立
iamsoloist
2002-09-03
打赏
举报
回复
不以这样写吧,这样的话boo的值不就变了吗?
如果别的地方也用这个标志呢?
wjmmml
2002-09-03
打赏
举报
回复
对,楼上的说的有道理
boo=false 就等于false
boo=true 就等于 true。
hjt3328
2002-09-03
打赏
举报
回复
同意楼上的,if(boo=false) 就等同于if(false);
teaky2002
2002-09-03
打赏
举报
回复
这个是程序的执行顺序问题,if(boo=false) 是先把false赋给boo变量,然后再判断,这个赋值的结果是false,所以就执行else的部分,就这么简单。
CatLuDn
2002-09-03
打赏
举报
回复
这其实也可以从运算符优先级来讨论的,关于运算符优先级和表达式的组合运算过程大家就去看看资料吧.
teddybear_xb
2002-09-03
打赏
举报
回复
楼上的 if (boo=true) 和 if(boo==false)这两者是完全的两个概念问题,并不等同!
前者是在赋值等同于if (true)而后者是在进行boolean类型的比较等同于if (true==false),显然true==false的结果是false
,所以间接等同于if (false)
CatLuDn
2002-09-03
打赏
举报
回复
各位想想吧!
CatLuDn
2002-09-03
打赏
举报
回复
同志们何必那么测试这样来吧,就可以知道 boo = false;表达式的值为false,而boo = true;表达式的值为true.
boolean boo = false;
System.out.println(boo = true);
System.out.println(boo = false);
System.out.println(boo == true);
System.out.println(boo == false);
输出是
ture
false
false
true
其实这是java中为了免除象c++中的if(x = ...)这样的错误而实行的一种机制,每个表达式都有其值,如:"int = 2;"的值为2.
所以你甚至可以写如下的式子:
int i =2;
i = i * (i = 3);
weny666
2002-09-03
打赏
举报
回复
我的结果和楼上的完全一样
agree jimok(Jim)
weny666
2002-09-03
打赏
举报
回复
if(statement) 在java中是完全可以的!
当然,该语句我还进行了实验,语法上没错误!而且我试验的结果也是正常的!
问题应该是高速缓存或编译时编译器监测错误,没有将原来的.class文件覆盖,按我上面说的方法应该可以!
加载更多回复(4)
浏览图片代码-查看某个文件夹中的图片,显示在网页中
查看某个文件夹中的图片,显示在网页中。程序片: package tom.jiafei; import java.io.*; class FileName implements FilenameFilter { public
boo
lean accept(File dir,String name) {
boo
lean
boo
=
false
; if(name.endsWith(".jpg")||name.endsWith(".JPG"))
boo
=true; return
boo
; } } public class Play { int imageNumber=0,max; String pictureName[],playImage; public Play() { File dir=new File("D:/myjsp/image"); pictureName=dir.list(new FileName()); max=pictureName.length; } public void setImageNumber(int n) { if(n<0) n=max-1; if(n==max) n=0; imageNumber=n; } public int getImageNumber() { return imageNumber; } public String getPlayImage() { playImage=new String(""); return playImage; } }
Java笔试-200题,题目详细,背答案容易,真正搞懂还是需要花一些心思的
1) 给定某Java程序的main方法如下所示,该程序的运行结果是( )。 public static void main(String[] args) {
boo
lean
boo
= true; if (
boo
==
false
) { System.out.println("a"); } else { System.out.println("b"); } } A. 输出a B. 输出b C. 输出ab D. 运行时出错
c语言图书管理系统
用链表实现数据的添加,删除,查看,修改,含有登录注册等功能,
boo
lean(布尔型) 两个值:true(真)or
false
(假)
<?php/** * Created by PhpStorm. * User: DELL * Date: 2018/4/9 * Time: 20:57 */$
boo
= true; //声明一个
boo
lean 类型变量,赋初值为trueif($
boo
== true) //判断变量$
boo
是否为真 echo '变量 $bo...
JAVA的逻辑运算符
作者:孙英鹏 撰写时间:2020年4月27日 今天要讲的是JAVA的逻辑运算符,什么是逻辑运算符呢?就是并且、或者、除非等一些东西,我们来看一下。 一.首先看一下逻辑运算符的意思与用法: 1.&&:与,前后两个操作数必须都是true才返回true,否则返回
false
。 2.&:不短路与,作用与&&相同,但不会短路。 3.||:或,只要两个操作...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章