当前位置:首页 > 开发 > 编程语言 > Java > 正文

Java中的&与&&及|与||的区别

发表于: 2015-03-11   作者:JokerLinisty   来源:转载   浏览:
摘要: 1、&和&&都可以表示逻辑与(and),多个表达式进行逻辑与操作时,只有都为true时,结果才为true。   2、&&具有短路功能,即如果多个表达式的某个表达式为false,则不会继续判断后续的表达式,整个逻辑与的结果即为false。   3、&可以进行位运算,如果表达式两边为数值时,则进行按位与操作。  

1、&和&&都可以表示逻辑与(and),多个表达式进行逻辑与操作时,只有都为true时,结果才为true。

 

2、&&具有短路功能,即如果多个表达式的某个表达式为false,则不会继续判断后续的表达式,整个逻辑与的结果即为false。

 

3、&可以进行位运算,如果表达式两边为数值时,则进行按位与操作。

 

4、| 和 || 都可以表示逻辑或(or),多个表达式进行逻辑或操作时,只要有一个为ture,则结果才为true。

 

5、|| 具有短路功能,即如果多个表达式的某个表达式为true,则不会继续判断后续的表达式,整个逻辑或的结果即为true。

 

6、| 可以进行位运算,如果表达式两边为数值时,则进行按位或操作。

 

7、测试实例:

package com.linwei;

public class TestOperator {
	public static void main(String[] args) {
		int x=1;
		int y=2;
		
		//测试1
		System.out.println("1、x&y:"+(x&y)); //进行的是按位与操作(0001&0010=0000-->0)
		
		//测试2
		if((x==2) && (++y)==3){ // 短路与,y不会自增
			System.out.println("2、&&:x="+x+", y=" +y);
		}else{
			System.out.println("3、&&:x="+x+", y=" +y);
		}
		
		//测试3
		if((x==2) & (++y)==3){// y会自增
			System.out.println("4、&:x="+x+", y=" +y);
		}else{
			System.out.println("5、&:x="+x+", y=" +y);
		}
		
		int m=3;
		int n=4;
		
		//测试4
		System.out.println("6、m|n:"+(m|n));//进行的是按位或操作(0011|0100=0111-->7)		
		
                //测试5
		if((m==3) || (++n)==3){ // 短路或,n不会自增
			System.out.println("7、||:m="+m+", n=" +n);
		}else{
			System.out.println("8、||:m="+n+", m=" +n);
		}
		
		//测试6
		if((m==3) | (++n)==3){ // n会自增
			System.out.println("9、|:m="+m+", n=" +n);
		}else{
			System.out.println("10、|:m="+n+", m=" +n);
		}
	}
}

执行结果:
1、x&y:0
3、&&:x=1, y=2
5、&:x=1, y=3
6、m|n:7
7、||:m=3, n=4
9、|:m=3, n=5

 

Java中的&与&&及|与||的区别

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在Java日常编程中经常使用==或者equals来比较两个变量,那么这两种方式有什么区别呢。 堆栈:首先我
在String和对象中null和""还是比较容易区分的!但是在集合中,我一直以为null和""差不多是一样的,其
我们经常会遇到比较两个值或对象是否相等,那么你用了equals还是==呢,你是否清楚二者的区别呢?下
Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的
java中有一个sendRedirect函数这个用于跳转到另外一个页面,这个实际上是一个302跳转,但是不完全等
java中有一个sendRedirect函数这个用于跳转到另外一个页面,这个实际上是一个302跳转,但是不完全等
Error类和Exception类都继承自Throwable类。 Error的继承关系: Exception的继承关系: 二者的不同
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSeque
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.
一、super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号