//& && 、| || 的区别

package day;
//&  &&  、|  || 的区别 
public class Test_04 {
/*总结:|和|| 、&和&&的区别:
    & (长路与):无论左边是true 还是 false; 右边都运算
    && 当左边为false时,右边不运算 
    | (长路或):两边都参与运算
    || 当左边为true 右边不运算

    
    注意:& && | || 最少也是由两个表达式组成的 ;而 !非 一个表达式即可 
例如System.out.println(!('a'=='a'));//非真就是假 非假就是真
* */

public static void main(String[] args) {
//&长路与:无论第一个表达式的值是true或者false都会执行右边
int i =2;
System.out.println(i==1 & i++ ==2);// 1 & 2
// false & true = false
System.out.println(i);//执行右边;i++ = (2+1)3

System.out.println(i++ ==2);// 2 & 2 这里是做判断不运算
// true & true = true 
System.out.println(i);//这里是运算后的结果,执行右边;(i++ ==2)i=i+2——i=2+2——i=4

 
//&&短路与:只要第一个表达式的值为false,第二个表达式的值不在进行运行算
int j =2;
System.out.println(j==1 && j++ ==2);
//flase && true =false
System.out.println(j);//2  左边为false,右边表达式值不需在运算

System.out.println(j==2 && j++ ==2);//j++只做替换成数字,不运算 
// true && true  =tuse   
System.out.println(j);//3  左边为真,右边也要执行

//| 长路或:两边都参与运算
int a =1;
System.out.println(a==1 | a++ ==2);
// true  false | =true;  
System.out.println(a);//2  左边为真,右边都要执行,结果输出右边的

int z =1;
System.out.println(z==2 | z++ ==1);
// false  true | =true; 
System.out.println(z);//2 左边为假,右边都要执行,结果输出右边的

//|| 短路或: 当左边为true 右边不运算     

int b =1;
System.out.println(b==1 || b++ ==2);
// true || false = true

System.out.println(b);//1 左边为真,右边不需执行,结果输出左边的


int m =1;
System.out.println(m==2 || m++ ==1);
// false || true = true
System.out.println(m); //2 左边为假,右边依旧需执行


}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值