java里&&与&的区别

java里&&与&的区别

专业回答
2015-11-13 01:18
java中&和&&的区别,&和&&虽然都是逻辑运算符,都是判断两边为真,则语句成立,但是在运行的时候,还是有差别的,下面举例来说明。
例子一:
public class Test2{
public static void main(String[] args){
int i=3;
if((i++>5)&(i++<9)){
System.out.println(i);
System.out.println("恭喜,执行完了条件语句!");
}
System.out.println(i);
}
}
从条件判断语句来看,是不成立的,但是i是自加了两次,有初始值3变成5。

例子二:java中&&的例子:
public class Test2{
public static void main(String[] args){
int i=3;
if((i++>5)&&(i++<9)){
System.out.println(i);
System.out.println("恭喜,执行完了条件语句!");

System.out.println(i);
}
}
从条件判断语句来看是不成立的,变量i只自加了一次。
总结:
&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。如&&例子中的i++>5被执行了,而i++<9并没有被执行,这就是他们的差别。&例子中的i++>5和i++<9都被执行了。

为您推荐:

2010-06-10 08:42 提问者采纳
好像好似执行顺序也不一样吧,&&会全部考虑,而&遇到一个false就停止,应该是这样的。
评论(7)  |  3  41

Eking2000 | 十级 采纳率26%

其他9条回答

2010-06-10 08:40 蒲仕龙  | 十级
&&逻辑与
&位与
评论  |  0  0
2010-06-10 08:43 xiang9fei  | 四级
(boolean1 && boolean2)
如果boolean11为false的话 boolean2就不去判断 整段为false

而(boolean1 & boolean2)
如果boolean1为false,boolean2还是为去判断 整段也为false
评论  |  3  2
2010-06-10 08:47 amima2126  | 四级
&是用来处理0101这样的2进制字符的位运算的,而&&是处理true和false这样的布尔逻辑运算。
&需要计算两边表达式的值,然后计算整个表达式的值 
&&短路运算符,第一个表达式的值为FALSE,那么整个逻辑表达式的值为FALSE,第二个表达式不计算
评论  |  4  0
2010-06-10 08:50 wxl9260  | 五级
&&逻辑与 例如: if(a&&b) //只要 a 或b有一个是false那么就是false
类似操作符: || 
a||b 只要有一个为true那么就是true
&位与 例如: int a=4,b=3; 
在2进制中 a就是 0000 0100
b就是 0000 0011
a&b=0000 0000 那么就是0了
如果是a|b =0000 0111 在十进制中就是7
评论  |  0  0
2010-06-10 08:51 christal_yhy  | 八级
&&逻辑与
&位与
评论  |  0  0
2010-06-10 08:59 wlrloveyou  | 五级
楼上的都没说到重点上,看这个例子,

if(str!=null && str.equals("123")) {}
这里先判断str是否为null,必须用&&。因为如果只用&那么第一个条件判断如果为false就证明str=null,这时候再做第二个判断str.equals("123"),因为str是null所以就会出现空指针异常。而用&&就不会出现异常,因为判断完str!=null是false整个表达式就直接返回false了。不会做第二个条件判断。
评论(1)  |  6  0
2010-06-10 09:35 雪过了无痕  | 七级
都是神仙 服你们了
评论  |  1  0
2010-06-10 09:46 zenghz_wuhan  | 三级
&&是短路运算符,只要前面一个条件是false就结束,&不管前面是true还是false,两边都会执行,如果两个当中有一个false则返回false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值