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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mauleta 中级黑马   /  2013-12-4 20:25  /  1772 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 mauleta 于 2013-12-7 08:38 编辑

“&”与“&&”符号有什么区别? 我每次出错后才知道用那个,具体有什么区别啊?

评分

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

查看全部评分

12 个回复

倒序浏览
&可以做位于运算符 和  非短路逻辑与运算符
&&短路逻辑与运算符

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

回复 使用道具 举报
用&时做逻辑与运算符,它是非短路逻辑与
什么是非短路,举一个例子: false & (5 == 8) 这个表达式,即使&左边的条件为false,也会计算&右边的表达式(5==8)的结果

用&&时做逻辑运算符时,它是短路逻辑与
还是上一个表达式,false && (5==8) 如果&&左边的计算结果为false,就不会计算右边表达式的结果

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
V_John + 1
mauleta + 2 赞一个!

查看全部评分

回复 使用道具 举报 1 0
1.&是逻辑与
0&0=0
0&1=0
1&0=0
1&1=1
2.&&是and
&&两边条件同时成立才为true

评分

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

查看全部评分

回复 使用道具 举报
当使用&&运算符时 如果第一表达式为假 就不再判断第二表达式的真假,也叫短路运算
当使用&运算符 当第一表达式为假 还是会去第二表达式,也可以叫非短路运算

评分

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

查看全部评分

回复 使用道具 举报
& 是与运算,是一个运算符 它是按bit 进行和运算
而 && 是只做bool 逻辑与运算,通常用于判断,不进行运算(无bit 操作)

评分

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

查看全部评分

回复 使用道具 举报
&含义是与是位运算符,主要来计算2进制数问题的,&&含义是逻辑与是逻辑运算符,是表达两个bool变量之间的逻辑关系

评分

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

查看全部评分

回复 使用道具 举报
&是对二进制进行操作的,0代表 非,1代表 是
这就很容易理解了:0&0=0;0&1=01&1=1.
而&&就是对两边的条件进行判断,当两边的条件都成立,整个表达式才成立。

其实用两个串联的开关理解&比较好,0代表断开,1代表闭合;
0&0就是两个开个都断开,肯定为0;
0&1代表一个断开,一个闭合,还是不能通路,还是为0;
1&1代表两个开关都闭合,那么线路为通路,为1.

评分

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

查看全部评分

回复 使用道具 举报
按位‘与’:a&b是把a和b都转换成二进制数然后再进行与的运算;

逻辑‘与’:a&&b是当且仅当两者均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。

评分

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

查看全部评分

回复 使用道具 举报
这个问题很简单,“&”是按与运算,是个位运算符,而“&&”是针对两个bool表达式与运算。不懂位运算可以百度看看。

评分

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

查看全部评分

回复 使用道具 举报
& 是与运算,是一个运算符 它是按bit 进行和运算,这在汇编语言是个必备的
比如:

0xf8 & 0x3f = 0x38
true & true = true

而 && 是只做bool 逻辑与运算,通常用于判断,不进行和运算(无bit 操作)
true & true = true

评分

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

查看全部评分

回复 使用道具 举报
运算符&&和||与运算符&和|是一样的,只是&&和|具有短路特性,使代码的特性更高。所谓短路就是在逻辑运算过程中,如果计算第一个操作数时就能得知运算结果,就不会再计算第二个操作数

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马