您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java中&和&&、|和||详解

小志的博客 发布时间:2021-07-31 10:23:05 ,浏览量:1

目录
    • 一、Java中& 和 && 的区别
    • 二、Java中‘|’与‘||’的区别

参考博文1:https://blog.csdn.net/zhou_fan_xi/article/details/84375385 参考博文2:https://blog.csdn.net/hacker754/article/details/78445304

一、Java中& 和 && 的区别

1、& 表示“按位与",这里的”位“是指二进制位(bit)

  • 例:十进制数字8 转化为二进制是:1000 ;数字9 转化为二进制是1001 。

    public class Test {
       public static void main(String[]args) {
          System.out.println(9 & 8);
       }
    }
    

    在这里插入图片描述

  • 原因 1001 & 1000 = 1000 。 计算机中一般1表示真,0表示假。最左边一位1&1=1,最右边一位1&0 = 0.

2、 && 表示逻辑”与“ ,即java中的boolean值才可以存在于&&符号的左右两侧。

  • rue && false = false (即"一假必假")

  • true && true = true, (即"一假必假")

  • && 符号有所谓的“短路原则”,当 A && B 出现时,如果A经判断是假,那么B表达式将不会获得执行或被判断的机会。直接结果就为假。

二、Java中‘|’与‘||’的区别

1、使用‘||’示例

  • 示例如下
	public class Test {
	   public static void main(String[]args) {
			int i=0;
			if(3>2 || (i++)>1) {
				i=i+1;
			}
			System.out.println(i);
		}
	}

在这里插入图片描述

  • 原因 因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面一个表达式即(i++)>1了,所以这里i并没有自增1。然后程序执行到i=i+1,于是i变为1。最后打印出1。

2、使用‘|’示例

  • 示例如下

    public class Test {
    	   public static void main(String[]args) {
    			int i=0;
    			if(3>2 | (i++)>1) {
    				i=i+1;
    			}
    			System.out.println(i);
    		}
    }
    

    在这里插入图片描述

  • 原因 无论第一个条件3>2是否为真,程序都会去执行判断第二个条件表达式,因此i++这个自增是会被执行的,再加上if内的i=i+1,所以最终i=2。

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.2093s