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 |