&与&&有什么区别?

转载地址:http://blog.youkuaiyun.com/liquanhai/article/details/4493259

 一、简要说明

按位与:a&b是把ab都转换成二进制数然后再进行与的运算;

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

 
例如:
 
a&b  9&8 
1001 
1000

结果是1000 
a&&b  9&&8 
结果是
1

&
对每一个都判断;

&&
只要前面是false就输出false,而不继续判断后面了

 

 二、详细解释

有关&&&的详细解释如下:

&,双目运算符:将两个表达式的值按二进制位展开,对应的位(bit)按值进行运算,结果保留在该位上
比如
170&204
对应二进制就是

10101010B
&11001100B
=10001000B…
170&204=136…
该位只要有一个值为0结果为0,否则结果为1
如果两数位数不同,则较短数高位补零,再运算,比如char a=100;int b=260;
a&b
实际是0000 0000 0110 0100&0000 0001 0000 0100.其结果为int0000 0000 000 01004…

&&:双目运算符,计算两个表达式同时成立的真值(同时成立真值为真否则为假)
逻辑真值有两种,1为真,0为假,但在运算时用非零表示真,0表示假
即:数值->逻辑真值--非0为真,0为假/逻辑真值->数值--真为1,假为
0…
例如:char a=1,b=0,c=-1;那么abc真。a&&bc&&b为假值为0a&&c为真值为1


逻辑运算符 `&&` `||` 分别是短路短路或运算符,它们在不同的场景下有着不同的作用特点。 ### 逻辑定义 - `&&` 是逻辑运算符,只有当两边的表达式都为真时,整个表达式才为真;只要有一个为假,整个表达式就为假。例如: ```java System.out.println(true && true); // true System.out.println(false && false); // false System.out.println(true && false); // false System.out.println(false && true); // false ``` - `||` 是逻辑或运算符,只要两边的表达式中有一个为真,整个表达式就为真;只有当两边都为假时,整个表达式才为假。例如: ```java System.out.println(true || true); // true System.out.println(false || false); // false System.out.println(true || false); // true System.out.println(false || true); // true ``` ### 短路特性 - `&&` 具有短路特性,当左边的表达式为假时,右边的表达式将不会被执行。因为无论右边表达式的结果如何,整个表达式的结果都已经确定为假。例如: ```java int a = 5; boolean result = (a > 10) && (++a > 0); System.out.println(result); // false System.out.println(a); // 5,右边表达式未执行 ``` - `||` 同样具有短路特性,当左边的表达式为真时,右边的表达式将不会被执行。因为无论右边表达式的结果如何,整个或表达式的结果都已经确定为真。例如: ```java int b = 5; boolean result2 = (b < 10) || (++b > 0); System.out.println(result2); // true System.out.println(b); // 5,右边表达式未执行 ``` ### 应用场景 - `&&` 常用于需要多个条件同时满足的情况,且前面的条件不满足时,后面的条件无需再判断的场景。例如在判断一个对象是否为空且对象的某个属性是否满足条件时: ```java Object obj = null; if (obj != null && obj.toString().equals("test")) { // 执行操作 } ``` - `||` 常用于多个条件中只要有一个满足即可的情况,且前面的条件满足时,后面的条件无需再判断的场景。例如在检查多个可能的异常情况时: ```java if (fileExists() || createFile()) { // 执行操作 } ``` ### 命令行中的应用 在命令行中,`&&` `||` 也有不同的作用。`&&` 表示只有当第一个命令成功执行后,才会执行第二个命令;`||` 表示只有当第一个命令执行失败时,才会执行第二个命令。例如: ```bash # 只有当 command1 成功执行后,才会执行 command2 command1 && command2 # 当 command1 执行失败时,才会执行 command2 command1 || command2 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值