整理java &,&&; |, ||的区别

&和| 是可以用做逻辑运算也可以用做位运算.

区别一:运算数据类型支持

&&和||只能用与逻辑运算 当你运行代码System.out.println(9&&10);时.

   会抛出The operator && is undefined for the argument type(s) int, int 的错误 改成String也会报同样的错误.

通过在&&或||两边放置不同类型数据,发现他们只支持boolean类型.

   而&和|两边则支持int boolean char三种类型,如果放的是int 或char则进行位运算,如果放的是boolean则进行逻辑运算

区别二:逻辑运算不同

     计算p1&&p2时,Java先计算p1,若p1为true再计算p2;若p1为false,则不再计算P2,因此&&又称为条件与运

算符.而&的两个运算对象都要计算,所以,&又称为无条件与运算符.类似的还有 "|| " (条件或运算符,p1 ||  

p2,Java先计算p1,若p1为FALSE再计算P2,若P1为TRUE,则不再计算P2)和 "| " (无条件运算符,两边对象

都要计算) .


    例如:(a <2)&(b-- <2) 保证(b-- <2)能被计算.这样,无论a是否小于2,变量b都要减1.


    要避免使用&和|运算符,它们好处不大.使用&和|运算符会使程序可读性降低,并且可能导致错误,比如:(x!=0)

&(100/x)当x为0时产生运行错误,而(x!=0)&&(100/x)没问题

 

如还有其他区别或以上分析有错误 欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值