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

表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时,就会引起运行时异常。

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

时间: 2024-11-08 09:50:49

IT兄弟连 Java语法教程 逻辑运算符的相关文章

IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循环语句可能包含如下4个部分: 1.初始化语句:一个或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行. 2.循环条件:这是一个boolean表达式,这个表达式能决定是否执行循环体. 3.循环体:这个部分是循环的主体,如果循环条件允许,这个代码块将被重复执行.如果这个代码块只有一

IT兄弟连 Java语法教程 流程控制语句 分支结构语句4

4  嵌套if-else条件语句 嵌套if语句是作为另一个if或else语句的目标的if语句.嵌套if语句在程序设计中非常普遍.Java中,关于嵌套if语句需要记住的是,else语句总是和同一代码块中最近的且没有else与之匹配的if语句相匹配,语法格式如下所示: if(判断条件A){ if(判断条件B){ A语句块 } if(判断条件C){ B语句块 }else{ C语句块 } }else{ D语句块 } 例:下面将演示嵌套if的执行流程: public class IfElseIfElseD

IT兄弟连 Java语法教程 流程控制语句 循环结构语句4

do-while循环 Java还有一种循环是do-while.与for.while这些在循环顶部判断条件表达式的语句不同,do-while是在循环底部进行条件表达式的检查.这意味着do-while循环至少要执行一次循环体.do-while循环的语法格式如下: do{ 循环体; }while(循环条件); 与while循环不同的是,do-while循环的循环条件后必须有一个分号,这个分号表明循环结束. 例:下面的程序演示了do-while循环的执行流程: public class DoWhileD

IT兄弟连 Java语法教程 流程控制语句 分支结构语句1

不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构.其中分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码.Java同样提供了这两种流程控制结构的语法,Java提供了if和switch两种分支语句,并提供了while.do-while和for三种循环语句.除此之外,JDK5还提供了一种新的循环:foreach循环,能以更简单的方式来遍历集合.数组的元素.Java还提供了break和continue来控制程序的循环结构. 分支结构语句

IT兄弟连 Java语法教程 数据类型转换

类型转换是将一个值从一种类型更改为另一种类型的过程.例如,可以将String(字符串,字符串是Java中非常特殊的数据类型,字符串属于引用类型,但是可以像基本类型一样使用字面值赋值)类型数据“456”转换为一个数值型,而且可以将任意类型的数据转换为String类型. 如果从低精度(比如byte,最大值127)数据类型向高精度(比如short,最大值32767)数据类型转换,则永远不会溢出,并且总是成功的:而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败. 数据类型转换有两种方

IT兄弟连 Java语法教程 Java语法基础 经典面试题

1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float和double,代表字符的char已经代表布尔型的boolean. byte:                             8位二进制,−27-27−1. short:                  16位二进制,−215-215−1. int:                   

IT兄弟连 Java语法教程 注释与编码规范

在程序代码中适当地添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面将介绍Java中的集中代码注释以及应该注意的编码规范. 代码注释 通过在程序代码中添加注释可提高程序的可读性.注释中包含了程序的信息,可以帮助程序员更好的阅读和理解程序.在Java源程序文件的任意位置都可添加注释语句.注释中的文字Java编译器不进行编译,所有代码中的注释文字对程序不产生任何影响.Java语言提供了3种添加注释的方法,分别为单行注释.多行注释和文档注释. ●  单行注释 “//”为

IT兄弟连 Java语法教程 流程控制语句 循环结构语句3

while循环 Java中的另外一种循环是while循环.while循环的语法格式如下: while(条件表达式){ 循环体; } 其中条件表达式定义了控制循环的条件,可以使任何有效的boolean表达式,条件为真时,循环会迭代.条件为假时,程序控制流会立刻转移到循环后面的代码. 例:下面是一个使用while循环输出字母表的简单示例: public class WhileDemo{ public static void main(String[] args){ char ch = 'a'; wh

IT兄弟连 Java语法教程 Java语言背景

驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(Internet),Java为高度的分布式体系结构提供了流水线程序设计的功能. Java是1991年由Sun Microsystems(曾经2000亿美元全球市值第一,google市值第二但是只有300多亿美元,而同期的苹果公司市值只有不到100亿美元.当今苹果公司万亿市值也是全球第一唯一万亿市值的上市