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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 年轻的棒棒 中级黑马   /  2013-5-21 09:35  /  1353 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 年轻的棒棒 于 2013-5-21 12:58 编辑

已经知道&&和&的运算结果是一样的,并且当左边为false时,右边将不参与运算,那是不是意味着&在java中是没有什么实际意义的呢?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

5 个回复

倒序浏览
&和&&的区别?
        答:(1)&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算;
                 只能操作boolean类型数据;
            (2)&不会出现短路,将整个表达式都运算。既可以操作boolean数据还可以操作数。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
怎么可能没意义呢?只是你还没遇上这类问题罢了。
回复 使用道具 举报
每一个都有它的意义,,对于&运算来说,就如同汉语中的和,只有两边同时为true,它才为true,其中一个为false,结果就是false。
           而&&运算,会出现短路现象,当左边出现false,右边保持不变。
     例如:false&true------>false
                false&&true------>false,二者结果一样,但是&&运算中右边的值是不变的。
个人理解,&运算是用于判断同时满足条件时用,&&运算用于判断满足几个条件中的一个时用,二者的应用场景不一样。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
& 和 &&
前者:是按位与,也就是说在与之前,先将数据转换成二进制代码,然后在进行与操作,
在条件语句中,可以当做逻辑与,这个逻辑“与”与“&&”这个与有些区别
后者:逻辑与,返回一个boolean值
区别:前者,是非短路也就是说,即使前面的条件是false 但是还要执行后面的语句 ,而&&如果前面条件为false那么就不执行后面的语句了
例如:j=1;
if( (++j ==1)&(j++==1))
System.out.println(j);
“&”前面的条件返回的是false ,但是还执行j++,所以这个输出的j是3
如果换成“&&”则输出的是2
(希望对你有所帮助吧)

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
壹旪傾峸 发表于 2013-5-21 10:38
& 和 &&
前者:是按位与,也就是说在与之前,先将数据转换成二进制代码,然后在进行与操作,
在条件语句中 ...

不错,很容易理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马