Java Applet 入门
yy435
太平洋网络学院
 
第二天
3、表达式与运算符
表达式是由变量、常量、对象、方法调用和操作符组成的式子。符合语法规则的表达式才能被编译系统理解、执行并计算。
说起表达式,也并不是很复杂,就是日常我们见到的数学式子,但有一些区别,Java中的表达式由于操作符的不同,而有很多的种类了。大致可以分为:
1)赋值与强制类型转换
赋值运算符对应了赋值云选,即赋予程序里的变量或对象一定的内容。简单的赋值运算是把一个表达式的值直接赋给一个变量或对象,使用的赋值运算符是“=”,格式为:
变量或对象=表达式;
其中赋值号右边的表达式可以是常量、另外一个变量或对象以及方法的返回值。下面给大家举几个例子:
i=0;
j=i;
k=i+j*4;
2)算术运算 
算术运算是针对数值类型操作数进行的运算,算术运算符根据操作数字个数的不同,又可以分为:
1.双目运算符 
| 
 运算符  | 
 运算  | 
 例子  | 
 解释  | 
| 
 +  | 
 加  | 
 a+b  | 
 求a与b相加的和  | 
| 
 -  | 
 减  | 
 a-b  | 
 求a与b相减的差  | 
| 
 *  | 
 乘  | 
 a*b  | 
 求a与b相乘的积  | 
| 
 /  | 
 除  | 
 a/b  | 
 求a除以b的商  | 
| 
 %  | 
 取余数  | 
 a%b  | 
 求a除以b所得的余数  | 
2.单目运算符
| 
 运算符  | 
 运算  | 
 例子  | 
 功能等价于  | 
| ++ | 
自增 | 
a++或++a | 
a=a+1 | 
| -- | 
自减 | 
a--或--a | 
a=a-1 | 
| - | 
求相反数 | 
-a | 
a=-a | 
给大家举个例子:
int x=2;
int y=(++x)*3;
运行结果是x=3;y=9。
再看另外的一个例子:
int x=2;
int y=(x++)*3;
运行结果是x=3,y=6。
这是为什么,因为第一个例子中,是x已经等于3后再算y,而后一个例子中,则是先用x=2算出y后,再算x,因为++符号在后面,这就是++x和x++的区别了。
3)关系运算符
关系运算是比较两个数据之间的大小关系的运算,常用的关系运算符号如下:
| 
 运算符  | 
 例子  | 
 解释  | 
| 
 ==  | 
 a==b  | 
 a等于b  | 
| 
 !=  | 
 a!=b  | 
 a不等于b  | 
| 
 >  | 
 a>b  | 
 a大于b  | 
| 
 <  | 
 a<b  | 
 a小于b  | 
| 
 >=  | 
 a>=b  | 
 a大于等于b  | 
| 
 <=  | 
 a<=b  | 
 a小于等于b  | 
关系运算符的结果是步尔值,也就是只有“真”和假两种答案,例如:
int x=5,y=7;
boolean b=(x==y);
则b的值是false。也就是0,计算机中用0可以代表false。
4)其他运算符
1.三目运算符
Java中的三墓运算符与C语言中的完全相同,使用形式为:
x?y:z;
这就是说,先计算x的值,若x为真,怎整个表达式的结果为y的值,若x为假,则整个表达式的值为表达式z的值。
例如:
int x=5,y=8,z=2;
int k=x<3?y:z;       //因为x<3,所以k=2;
int j=x>0?x:-x         //y的值始终为x的绝对值。
2.逻辑运算
逻辑运算是针对布尔型数据进行的云酸,运算的结果仍然是布尔型量。常用的运算符如下:
| 
 运算符  | 
 运算  | 
 例子  | 
 解释  | 
| & | 
非简洁与 | 
x&y | 
x,y都真时结果才为真 | 
| | | 
非简洁或 | 
x|y | 
x,y都假时结果才为假 | 
| ! | 
取反 | 
!=x | 
x真时为假,x假时为真 | 
| ^ | 
取或 | 
x^y | 
x,y同真假时结果为假 | 
| && | 
简洁与 | 
x&&y | 
x,y都真时结果才为真 | 
| || | 
简洁或 | 
x||y | 
x,y都假时结果才为假 | 
3.位运算
位运算是对操作数以二进制为单位进行的操作和运算,位运算的操作数和结果都是整形变量。常用的规则列表如下:
| 
 运算符  | 
 运算  | 
 例子  | 
 解释  | 
| 
 ~  | 
 位反  | 
 ~x  | 
 将x按比特位取反  | 
| 
 >>  | 
 右移  | 
 x>>a  | 
 x各比特位右移a位  | 
| 
 <<  | 
 左移  | 
 x<<a  | 
 x各比特位左移a位  | 
| 
 >>>  | 
 不带符号的右移  | 
 x>>>a  | 
 x各比特位右移a位,左边的空位填零  | 
2.复杂运算符
复杂运算符是在先进行某种云酸后,再把运算结果赋给变量。举例如下:
| 
 运算符  | 
 例子  | 
 解释  | 
| 
 +=  | 
 x+=a  | 
 x=x+a  | 
| 
 -+  | 
 x-=a  | 
 x=x-a  | 
| 
 *=  | 
 x*=a  | 
 x=x*a  | 
| 
 /=  | 
 x/=a  | 
 x=x/a  | 
| 
 %=  | 
 x%=a  | 
 x=x%a  | 
| 
 &=  | 
 x&=a  | 
 x=x&a  | 
| 
 |=  | 
 x|=a  | 
 x=x|a  | 
| 
 ^=  | 
 x^=a  | 
 x=x^a  | 
| 
 <<=  | 
 x<<=a  | 
 x=x<<a  | 
| 
 >>=  | 
 x>>=a  | 
 x=x>>a  | 
| 
 <<<=  | 
 x<<<=a  | 
 x=x<<<a  |