现在的位置: 首页 > 综合 > 正文

【操作符】 – 逻辑操作符

2013年03月21日 ⁄ 综合 ⁄ 共 1451字 ⁄ 字号 评论关闭

一:逻辑操作符:

与:&&

或:||

非:!

二:&& 和 & 

&& 逻辑与运算,返回boolean类型,只有当所有条件同时满足时才返回ture,并且有短路作用;

&   既可以做逻辑与运算也可以当做位运算符,当做位运算符时,会将两个数字先转化为二进制数字,然后相同位的数字进行与运算,如果两个数字位数不等,则较少的那个数字高位补足之后再进行计算。

public class Caozuofu {

	static boolean xy(int x,int y){
		boolean xy = x==y;
		System.out.println("执行xy()方法并返回结果:"+xy);
		return xy;
	}
	
	static boolean yz(int y,int z){
		boolean yz = y==z;
		System.out.println("执行yz()方法并返回结果:"+yz);
		return yz;
	}
	
	public static void main(String[] args) {
		int a = 1;
		int b = 2;
		int c = 3;
		System.out.println("下面测试“&&”的用法:");
		boolean two = xy(a,b) && yz(b,c);
		System.out.println("“&&”测试结束:" + two);
		System.out.println("***************************  我是分割线    ****************************");
		System.out.println("下面测试“&”的用法:");
		boolean one = xy(a,b) & yz(b,c);
		System.out.println("“&”测试结束:" + one);
		System.out.println("***************************  我是分割线    ****************************");
		if(a==b && b==c){
			System.out.println("相等");
		}else{
			System.out.println("不相等");			
		}
		System.out.println("***************************  我是分割线    ****************************");
		System.out.println(170&204);
	}
}

输出结果:

下面测试“&&”的用法:
执行xy()方法并返回结果:false
“&&”测试结束:false
***************************  我是分割线    ****************************
下面测试“&”的用法:
执行xy()方法并返回结果:false
执行yz()方法并返回结果:false
“&”测试结束:false
***************************  我是分割线    ****************************
不相等
***************************  我是分割线    ****************************
136

可知,&会运算所有的方法,但是&&只要第一个方法不满足就不再进行运算,这就是传说中的“短路”现象。

三:实验遇到的问题:

1:xy()和yz()方法为什么不能放在main方法之内?

2:xy()&&yz()前面为什么必须boolean boo ?而不能只有一个运算式不管他的返回值?也就是必须这样:boolean boo = xy()&&yz(),不能这样:xy()&&yz()

抱歉!评论已关闭.