java逻辑运算符

java逻辑运算符

ID:40557288

大小:15.72 KB

页数:4页

时间:2019-08-04

java逻辑运算符_第1页
java逻辑运算符_第2页
java逻辑运算符_第3页
java逻辑运算符_第4页
资源描述:

《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,所以没有必要继续计算剩余的表达式,那样做只是浪费。“短路”一词的由来正源于此。合理的短路设计会使程序性能获得潜在的提升。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。