、<=、>、>=的优先级高于==、!=。关系运算符的优先级低于算术运算符的优先级。
2.1.5逻辑运算
逻辑运算用来描述表达式,实现连续多个条件的逻辑与、逻辑或、逻辑否定的判定。有3个逻辑运算符:""(逻辑与)、‖(逻辑或)、!(逻辑否定)其中:运算符""和‖是双目运算符,运算符!是单目运算符。逻辑运算的操作数必须是布尔型的,结果也是布尔型的。
逻辑否定“!”的优先级高于算术运算符的优先级。逻辑与“""”和逻辑或“‖”的优先级低于关系运算符的优先级。需要特别指出的是,逻辑与和逻辑或运算符有以下
性质,Java语言利用这些性质,在进行连续的逻辑运算时,不分逻辑与和逻辑或的优先级进行计算,而是顺序进行逻辑与和逻辑或的计算,一旦逻辑子表达式或逻辑
表达式能确定结果,就不再继续计算。
(1)对表达式a""b,当a为false时,结果为false,不必再计算b;仅当a为true时,才需计算b。
(2)对表达式a‖b,当a为true时,结果为true,不必再计算b;仅当a为false时,才需计算b。例如:设有a=b=c=1,计算++a>=1||++b<
++c。从左到右顺序计算逻辑或表达式,先计算子表达式++a>=1,变量a的值变为2,++a>=1为true,整个逻辑表达式的值已经为true,不再计算右边的子表达式++b<++c。因而,变量b和变量c的值不变,仍为1。
2.1.6条件运算(?:)
条件运算是一个三目运算符,一般形式为:逻辑表达式?表达式1:表达式2
2.1.7其他运算
1.位运算
位运算的运算分量只能是整型数据,位运算把运算对象看作是由二进制
位组成的位串,逐位完成指定的运算,得到一个新的位串。位运算符有4个,按优先级从高到低顺序,依次为:~(位反)、&(位与)、^(位异或)、|(位或)用位运算的组合可以用来描述各种特殊的位串运算。例如,位运算表达式
((k-1)^)&k能取下非0的整型变量k的最右边为1的那一位。
2.移位运算
移位运算是将整数作为二进制位的位串向左或向右移动。移位运算符有三个,它们是:
左移运算符(<<)、算术右移运算符(>>)、逻辑右移运算符(>> >)移位运算有两个运算分量,左运算分量为移位的数据对象,右运算分量的值为移位位数。移位运算符的优
先级低于算术算符,高于关系运算符,它们的结合方向是自左至右。
Java语言允许数值型数据混合运算,不同类型的数值数据混合运算时需要类型转换。对于数据表示字节数少的类型数据转换成数据表示字节数较多的类型数据,
系统能自动实现转换。反之,例如,将一个long类数据转换成int型数型,这种数据类型转换必须采用类型
强制转换。类型强制转换称作造型(cast),书写格式为:
(类型)表达式
2.2语句
在Java语言中,语句分为基本语句、控制结构语句以及package语句和import语句等。其中控制结构语句包括复合语句、if语句、switch语句、循环语句和
try...catch语句。其中循环语句有 while语句、do...while语句、for语句三种。
2.2.1基本语句
基本语句主要有表达式语句、空语句、break语句、continue语句、return语句等。
1.表达式语句
在赋值表达式、自增自减表达式和方法调用表达式之后加上分号即变成语句,称它们是表达式语句。另一个典型的表达式语句是方法调用表达式之后接上分号。
2.空语句
空语句是只有一个分号的语句,其形式为;
实际上,空语句是什么也不做的语句。语言引入空语句是出于以下实用上的考虑。例如,循环控制结构的句法需要一个语句作为循环体,当要循环执行的动作由循环控制部分完成时,就不需要有一个实际意义的循环体,这时就需要用一个空语句作为循环体。另外,语言引入空语句使序列中连续出现多个分号不再是一种错误,编译系统遇到这种情况,就认为单独的分号是空语句。
3.break语句
break语句必须出现在多路按值选择结构或循环结构中。break语句的执行强制结束它所在的控制结构,让程序从这个控制结构的后继语句继续执行
。
4.continue语句
continue语句只能出现在循环结构中,continue语句的执行将忽略它所在的循环体中在它之后的语句。简单地说,continue语句提早结束当前轮次循环,进入下
一轮次循环。
2.2.2复合语句
在Java语言中,用花括号括住一个顺序执行的计算步骤序列描述顺序结构,这样的顺序结构称作复合语句。复合语句中的每个计算步骤可以是单个语句,也可以是一个控制结构,特别情况也可以为空。
2.2.3