在学习离散数学的时候,只知道一直学着莫名其妙的符号,不知其用途在何处。学习了java的逻辑运算符之后才发现,其实离散数学与计算机语言的关联是非常大的。
java中的逻辑运算符和C中一样,只不过在学习java的过程中,更加深入地理解了其作用,以 表达式A 逻辑运算符 表达式B 为例吧(这里的表达式都是布尔表达式,结果为0或1)。
与:
当两个boolean表达式都为true时,结果才为true,其他均为false。而“与”又分为“位与”和“短路与”,区别如下:
&(位与):如果A表达式为false,也会判断B表达式,再返回false。
&&(短路与):如果A表达式为false,则不再判断B表达式,直接返回false
我们可以看看下面代码的结果:
System.out.println(false & (100 / 0 == 100));//出错,说明执行了(100 / 0 == 100);System.out.println(false && (100 / 0 == 100));//结果为false,说明并没有执行(100 / 0 == 100);
或:
当两个boolean表达式都为false时,结果才为false,其他均为true。
同样地,“或”也有“或”和“短路或”之分,区别如下:
|:如果A表达式为true,也会判断B表达式,再返回true。
||:如果A表达式为true,则不再判断B表达式,直接返回true。
同样地,我们来看看下面代码的结果:
System.out.println(true | (100 / 0 == 100));//出错,说明执行了(100 / 0 == 100);System.out.println(true || (100 / 0 == 100));//结果为true,说明并没有执行(100 / 0 == 100);
异或:
异或比较简单,直接判断表达式A与表达式B是否相同,相同为false,不同为true。
通过代码看就比较直观了:
System.out.println(true ^ true);//falseSystem.out.println(true ^ false);//trueSystem.out.println(false ^ true);//trueSystem.out.println(false ^ false);//false
非:
非最简单,也就是取反操作,true变false,false变true。
看看代码吧:
System.out.println(!true);//falseSystem.out.println(!false);//trueSystem.out.println(!!!!!true);//false
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦