内容正文:
02
算数表达式与赋值表达式
能够正确书写并使用 Java 的算术运算符与算术表达式;
能够正确书写 Java 的赋值运算符与赋值表达式;
能够把“小事” 做细, 树立“细节决定成败”的意识, 做一个做事严谨的人。
任务目标
一、算术运算符与算术表达式
(一)算术运算符
算术运算符用于完成算术运算。 Java 提供了两大类共八个算术运算符。
双目运算符
单目运算符
1. 双目运算符
双目运算符是有两个操作数的运算符, Java中有五个双目算术运算符。
其中加法(+)运算符除能对数值进行加法运算操作外,还可以用来实现字符串的连接,比如下面的语句:
System.out.println("abc"+"de");
就将输出字符串“abcde”。
另外,与 C、C+ + 不同,取余(%)运算的操作数不但可以是整数也可以是浮点数,例如:整数 % 整数,结果是整数,如 12%5=2;浮点数 % 整数,结果是浮点数,如12.3%6=0.3;整数 % 浮点数,结果是浮点数,如 19%6.7=5.6;浮点数 % 浮点数,结果是浮点数,如18.6%6.7=5.200000000000001。
2. 单目运算符
单目运算符是只有一个操作数的运算符, Java 中有四个单目算术运算符。
需要注意的是自增(+ +)和自减(- -)运算符在做前缀和后缀使用时是有区别的。
分析下列程序的输出结果,注意其中前置运算和后置运算的区别。
public class Exam
{public static void main(String args[])
{
int i,x,y;
i=5;
x=i++; /* 后置运算 , 先把 i 的值赋给 x, 然后 i 的值加 1*/
System.out.println("i=%d,x=%d
",i,x);
i=5;
y=++i; /* 前置运算 , 先使 i 的值加 1, 然后将 i 的值赋给 y*/
System.out.println("i=%d,y=%d
",i,y);
}
}
程序运行结果如下所示。
i=6,x=5
i=6,y=6
(二)算术表达式
用算术运算符或圆括号将运算对象(也称操作数)连接起来的、符合 C 语法规则的式子,称为 C 的算术表达式。运算对象包括常量、变量、函数等。算术表达式在使用时要注意书写形式。
二、赋值运算符与赋值表达式
(一)简单赋值运算符
赋值运算符“ =”用于将运算符右边表达式的值赋给左边的变量,如“x=5”是把量 5 赋给变量 x。
由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的基本使用格式如下:
变量 = 表达式 ;
(二)复合赋值运算符
除基本赋值运算符外,Java 还提供了一系列复合赋值运算符(快捷赋值运算符),用于在一个运算符里同时完成赋值操作和另一个算术、移位或按位操作。例如:
i = i + j;
可以使用快捷赋值运算符“ + =” :
i += j;
赋值运算符和复合赋值运算符的优先级高于逗号运算符,结合方向均为“从右到左”。
(三)赋值表达式
(1)赋值运算符的左边必须是变量名,被赋值变量的值就是赋值表达式的值。
(2)当赋值表达式中左边的变量与右边的表达式的数据类型不同时,需要进行类型转
换。转换的规则是:右边表达式的值被转换成左边变量的数据类型,然后再赋值给变量。
(3)赋值表达式也可以包含复合的赋值运算符。例如:a+ =a- =a*a
如果 a 的初值为 8,此赋值表达式的求解步骤如下:
①先进行“a- =a*a”的运算,它相当于 a=a-a*a=8-64= -56。
②再进行“a+ = -56”的运算,它相当于 a=a+( -56) = -56-56= -112。
$$