欢迎来到天天文库
浏览记录
ID:40557288
大小:15.72 KB
页数:4页
时间:2019-08-04
《java逻辑运算符》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、java与或非操作与(&)、非(~)、或(
2、)、异或(^)1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。publicclassdata13{publicstaticvoidmain(String[]args){inta=129;intb=128;System.out.println("a和b与的结果是:"+(a&b));}}运行结果a和b与的结果是:128下面分析这个程序:“a”的值是129,转换成二进制就是10000001,而“
3、b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。2.或运算符或运算符用符号“
4、”表示,其运算规律如下:两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。publicclassdata14{publicstaticvoidmain(String[]args){inta=129;intb=128;System.out.println("a和b或的结果是:"+(a
5、b));}}运行结果a和b
6、或的结果是:129下面分析这个程序段:a的值是129,转换成二进制就是10000001,而b的值是128,转换成二进制就是10000000,根据或运算符的运算规律,两个位满足其中有一个或两个是1,结果就为1,可以知道结果就是10000001,即129。1.非运算符非运算符用符号“~”表示,其运算规律如下:如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。publicclassdata15{publicstaticvoidmain(String[]args){inta=2;System.out.
7、println("a非的结果是:"+(~a));}}2.异或运算符异或运算符是用符号“^”表示的,其运算规律是:两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。publicclassdata16{publicstaticvoidmain(String[]args){inta=15;intb=2;System.out.println("a与b异或的结果是:"+(a^b));}}运行结果a与b异或的结果是:13分析上面的程序段:a的值是15,转换成二进制为1111,而b的值是2,转换成二
8、进制为0010,根据异或的运算规律,可以得出其结果为1101即13。二、短路条件操作当使用逻辑操作符时,我们会遇到一种“短路”现象。即一旦能够明确无误地确定整个表达式的值,就不会再计算表达式剩余的部分了。因此,整个逻辑表达式靠后的部分有可能不会被运算。System.out.println(false
9、
10、true);//输出true,
11、
12、不存在短路现象,表达式中有任意一部分为true就返回true,所以
13、
14、逻辑操作符必须要将整个表达式运算完毕才能得出结果。System.out.println(false&&t
15、rue);//输出false。表达式中有任意一部分为false,整个表达式就返回false。不必将整个表达式运算完毕。staticbooleantest1(intval){System.out.println("test1("+val+")");System.out.println("result:"+(val<1));returnval<1;}staticbooleantest2(intval){System.out.println("test2("+val+")");System.out.println
16、("result:"+(val<2));returnval<2;}staticbooleantest3(intval){System.out.println("test3("+val+")");System.out.println("result:"+(val<3));returnval<3;}publicstaticvoidmain(String[]args){booleanb=test1(0)&&test2(2)&&test3(2);System.out.println("expressionis"+b
17、);}/**OutPut*test1(0)*result:true*test2(2)*result:false*expressionisfalse*/第一个测试生成结果为true,所以表达式会继续下去。然而第二个测试产生了一个false结果。由于这意味着整个表达式肯定为false,所以没有必要继续计算剩余的表达式,那样做只是浪费。“短路”一词的由来正源于此。合理的短路设计会使程序性能获得潜在的提升。
此文档下载收益归作者所有