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++或++aa=a+1
--自减a--或--aa=a-1
-求相反数-aa=-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==ba等于b
!=a!=ba不等于b
>a>ba大于b
<a<ba小于b
>=a>=ba大于等于b
<=a<=ba小于等于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&yx,y都真时结果才为真
|非简洁或x|yx,y都假时结果才为假
!取反!=xx真时为假,x假时为真
^取或x^yx,y同真假时结果为假
&&简洁与x&&yx,y都真时结果才为真
||简洁或x||yx,y都假时结果才为假
3.位运算
位运算是对操作数以二进制为单位进行的操作和运算,位运算的操作数和结果都是整形变量。常用的规则列表如下:
运算符运算例子解释
~位反~x将x按比特位取反
>>右移x>>ax各比特位右移a位
<<左移x<<ax各比特位左移a位
>>>不带符号的右移x>>>ax各比特位右移a位,左边的空位填零
2.复杂运算符
复杂运算符是在先进行某种云酸后,再把运算结果赋给变量。举例如下:
运算符例子解释
+=x+=ax=x+a
-+x-=ax=x-a
*=x*=ax=x*a
/=x/=ax=x/a
%=x%=ax=x%a
&=x&=ax=x&a
|=x|=ax=x|a
^=x^=ax=x^a
<<=x<<=ax=x<<a
>>=x>>=ax=x>>a
<<<=x<<<=ax=x<<<a