码迷,mamicode.com
首页 > 编程语言 > 详细

IT兄弟连 Java语法教程 逻辑运算符

时间:2019-07-04 09:45:17      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:int   控制   状态   false   方式   存在   rgs   特性   二进制   

表8中显示的布尔逻辑运算符只能操作布尔类型的操作数,所有的二元逻辑运算符都可以组合两个布尔值,得到的结果为布尔类型。

 

表8  布尔逻辑运算符

技术图片

 

布尔逻辑运算符”&“、”|“以及”^“,都会布尔值进行操作,操作方式与它们操作整数中位的方式相同。逻辑非运算符”!“反转布尔状态:!true==false并且!false==true。表9中显示了各种逻辑操作的效果。

表9  逻辑操作效果

技术图片

下面的程序和前面演示的BitLogic程序几乎相同,但该程序是对布尔型逻辑值进行操作,而不是对二进制位进行操作。

public class BoolLogic{

    public static void main(String[] args){

         boolean a = true;

         boolean b = false;

         boolean c = a | b;

         boolean d = a & b;

         boolean e = a ^ b;

        boolean f = (!a & b) | (a & !b);

         boolean g = !a;

         System.out.println("        a = " + a);

         System.out.println("        b = " + b);

         System.out.println("      a|b = " + c);

         System.out.println("      a&b = " + d);

         System.out.println("      a^b = " + e);

         System.out.println("!a&b|a&!b = " + f);

         System.out.println("       !a = " + g);

    }

}

编译并运行这个程序,控制台将显示如图14所示的信息。

技术图片

图14  BoolLogic运行结果

 

●  短路逻辑运算符

Java提供了两个有趣的、其它许多计算机语言没有提供的布尔运算符。它们是布尔与运算符和布尔或运算符的辅助版本。通常称为”短路“逻辑运算符。从前面的表3.8可以看出,如果A为true,不管B的值是什么,逻辑或的结果都是true。类似地,如果A为false,不管B的值是什么,逻辑与的结果都为false。如果使用”||“和”&&“形式,而不是这些运算符的”|“和”&“形式,并且假如单独根据左操作数就能确定表达式的结果,那么Java就不会再计算有操作数的值。为了得到正确的功能,当有操作数取决于左操作数的值时,这个特性非常有用。例如,下面的代码显示了如何利用短路逻辑运算,确保再对表达式求值之前是合法的:

if(denom != 0 && num/denom > 10)

因为再此使用的是逻辑与的短路形式(&&),所以不存在由变量denom为0而引起运行时异常的风险。如果这行代码使用逻辑与的单个&符号形式进行编写,那么两边的操作数都会进行求值,这样当denom为0时,就会引起运行时异常。

IT兄弟连 Java语法教程 逻辑运算符

标签:int   控制   状态   false   方式   存在   rgs   特性   二进制   

原文地址:https://www.cnblogs.com/itxdl/p/11130266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!