《Java语言中的表达式.doc》由会员分享,可在线阅读,更多相关《Java语言中的表达式.doc(9页珍藏版)》请在金锄头文库上搜索。
1、Java语言中的表达式是由运算符与操作数组合而成的,所谓的运算符就是用来做运算的符号。 在Java中的运算符,基本上可分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、转型运算符等。一、算术运算符 所谓算术运算符,也就是我们数学中学到的加、减、乘、除等运算。这些操作可以对几个不同类型的数字进行混合运算,为了保证操作的精度,系统在运算的过程中会做相应的转换。 1、数字精度 所谓数字精度,也就是系统在做数字之间的算术运算时,为了尽最大可能地保持计算机的准确性,而自动进行相应的转换,将不同的数据类型转变为精度最高的数据类型。规则如下: 1)当使用运算符把两个操作数结合到一起时,在进行运算
2、前两个操作数会转化成相同的类型。 2)两个操作数中有一个是double类型的,则另一个将转换成double型。 3)两个操作数中有一个是float类型的,则另一个将也转换成float型。 4)两个操作数中有一个是long类型的,则另一个将也转换成long型。 5)任何其它类型的操作,两个操作数都要转换成int类型。 2、整数型运算(int型) 对于int型的相关操作,加、减、乘的结果都是非常容易理解的,重点讲一下除(/)的运算。 两个整数相除的结果是整数,这一点与数学中是不同的,在Java中,两个整数相除的结果类似于数学中的求模运算。整除的余数是用%表示,例如15 / 2 = 7,而不是7.5
3、,15 % 2 = 1。我们用程序验证一下:/*两个整数相除及求余数*/public class Divide public static void main(String args) int a = 15; int b = 2; double c = 2; System.out.println(a + / + b + = + (a / b); System.out.println(a + %+ b + = + (a % b); System.out.println(a + / + c + = + (a / c); System.out.println(a + % + c + = + (a %
4、 c); 输出结果: 15 / 2 = 7 15 % 2 = 1 15 / 2.0 = 7.5 15 % 2.0 = 1.0 3、自增和自减运算符 在循环与控制中,我们经常会用到类似于计数器的运算,它们的特征是每次的操作都是加1或减1。在Java中提供了自增、自减运算符,X+使变量X的当前值每次增加1,而X-是自减运算符,每次操作使当前X的值减1。例如:/*测试自增、自减操作*/public class SelfAction public static void main(String args) int x = 10; int a = x+ x+; System.out.println(a
5、= + a); System.out.println(x = + x); int b = x + +x; System.out.println(b = + b); System.out.println(x = + x); int c = x + x-; System.out.println(c = + c); System.out.println(x = + x); int d = x + -x; System.out.println(d = + d); System.out.println(x = + x); 输出结果: a = 20 x = 11 b = 23 x = 12 c = 24
6、x = 11 d = 21 x = 10二、关系运算符 Java具有完美的关系运算符。这些关系运算符基本上同数学中的关系运算符是一致的。“”大于、“=”大于等于、“ b; /true; y = a b; b = R != r; x = !a; y = a & b; z = a | b; System.out.println(x = + x); System.out.println(y = + y); System.out.println(z = + z); 输出结果: x = true y = false z = true 4、“短路”现象 在运用逻辑运算符进行相关的操作时,我们会遇到一种很有
7、趣的现象;短路现象。 对于true & false根据我们的讲述,处理的结果已经是false了,也就是说无论后面是结果是“真”还是“假”,整个语句的结果肯定是false了,所以系统就认为已经没有必要再进行比较下去了。也就不会再执行了,这种理象就是我们所说的短路现象。四、位运算符 所有的数据、信息在计算机中都是以二进制形式存在的。我们可以对整数的二进制位进行相关的操作。这就是按位运算符,它主要包括:位的“与”、位的“或”、位的“非”、位的“异或”。 1)位的“与”,用符号“&”表示,它属于二元运算符。 与位运算值表:ABA&B111100010000 2)位的“或”用符号“|”表示,它属于二元运
8、算符。 或位运算值表:ABA|B111011101000 3)位的“非”,用符号“”表示,它是一元运算符,只对单个自变量起作用。它的作用是使二进制按位“取反”。 非位运算值表:AA1001 4)位的“异或”,用符号“”表示,它属于二元运算符。异或位运算值表:ABAB110011101000/*测试位的四种运算*/public class BitOperation public static void main(String args) int a = 15; int b = 2; int x = a & b; int y = a | b; int z = a b; System.out.println(a + & + b + = + x); System.out.println(a + | + b + = + y); System.out.println(a + + b + = + z); 输出结果: 15 & 2 = 2 15 | 2 = 15 15 2 = 13五、移位运算符 移位运算符的面向对象也是二进制的“位”。可以单独用移位运算符来处理int型数据。它主要包括:左移位运算符()、“无符号”右移运算符() 1)左移位运算符 左移位运算符,用符号“”表示。它是将运算符左边的对象向左移运动运算符右边指定的位数(在低位补0)。 2)“有符号”右移运算