Java运算符与表达式
来自CloudWiki
- Java中的语句有多种形式,表达式就是其中一种。
目录
表达式
- 表达式由操作数与运算符组成。操作数可以是常量、变量,也可以是方法;运算符类似于数学中的运算符号,如“+”、“-”、“*”、“/”、“%”等。
- 以表达式“z+100”为例,“z”与“100”都是操作数,而“+”就是运算符。
3.14*r*r , 1+a , x+y-z
运算符
赋值运算符
- Java提供了丰富的运算符,根据其用途不同,运算符可分为赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符等。
- 赋值运算符用于为变量指定变量值,使用“=”作为赋值运算符。
- 通常,使用赋值运算符将一个直接的数据赋值给变量。例如:
int i=5; //为变量i赋值数据5
- 也可以使用赋值运算符将一个变量或常量的值赋值给另一个变量。例如:
final double PI = 3.1415; double a = PI; //为变量a赋值PI常量表示的取值 double b = a; //为变量b赋值a变量表示的取值
- 还可以使用赋值运算符将表达式的值赋值给变量。例如:
final double PI = 3.1415; double r = 3.5; double area = PI * r * r; //将表达式PI*r*r的运算结果赋值给area变量
- 赋给运算符还可与其他运算符结合,扩展成功能更加强大的赋值运算符。
public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 0; c = a + b; System.out.println("c = a + b = " + c ); c += a ;//等价于 c=c+a System.out.println("c += a = " + c ); c -= a ;//等价于 c=c-a System.out.println("c -= a = " + c ); c *= a ;//等价于 c=c*a System.out.println("c *= a = " + c ); a = 10; c = 15; c /= a ;//等价于c=c/a System.out.println("c /= a = " + c ); } }
算术运算符
- Java支持所有的基本算术运算,包含:+(加法) 、–(减法)、*(乘法)、/(除法)、%(求余数),下面将一一介绍。
加减运算符“+”
- 将加法运算符“+”的前后两个操作数相加,例如:
double a = 3.5; double b = 5.1; double sum = a + b; //将表达式a+b的运算结果赋值给sum变量 System.out.println(sum);
减法运算符“-”
- 将减法运算符“–”前面的操作数减去后面的操作数,例如:
int num = 9; num = num –3 ; // 将num-3运算结果再赋值给num存放 System.out.println(num);
乘法运算符“*”
- 将乘法运算符“*”的前后两个操作数相乘,例如:
b = b * 5 ; // 将b*5运算之后赋值给b存放 a = b *b ; // 将b*b运算之后赋值给a存放
除法运算符“/”
- 将除法运算符“/”前面的操作数除以后面的操作数,例如:
a = b / 5 ; // 将b / 5运算之后的值赋给a存放 c = c / d ; // 将c / d运算之后的值赋给c存放
思考:
System.out.println(5 / 0); //打印值为多少 ? System.out.println(5 / 0.0); //打印值为多少 ?
- 除法运算符有些特殊,包含如下两种形式:
- 如果除法运算符的两个操作数都是整数类型,则计算结果也是整数,就是将自然除法的结果截断取整。此时除数不可以是0,否则将引发除以零异常。例如:
System.out.println(5 / 2); //输出结果是2,而不是2.5 System.out.println(5 / 0); //不能执行,引发除以零异常
- 如果除法运算符的两个操作数有一个是浮点数,或者两个都是浮点数,则计算结果也是浮点数,这个结果就是自然除法的结果。此时允许除数为0或0.0,得到结果是正无穷大或负无穷大。例如:
System.out.println(5 / 2.0); //输出结果是2.5 System.out.println(5.0 / 2); //输出结果是2.5 System.out.println(5.0 / 2.0); //输出结果是2.5 System.out.println(5 / 0.0); //输出结果是Infinity(表示正无穷大) System.out.println(5 / -0.0); //输出结果是-Infinity(表示负无穷大)
求余数运算符“%”
- 将余数运算符“%”前面的操作数除以后面的操作数,得到一个整除的结果后剩下的值就是余数。例如:
int num = 10; num = num % 3 ; // 将num%3运算之后赋值给num存放 System.out.println(num); //输出结果:1
- 由于求余数运算符也需要进行除法运算,因此也包含两种形式:
- 如果求余数运算的两个操作数都是整数类型,则求余数运算的第二个操作数不能是0,否则将引发除以零异常。例如:
System.out.println(5 % 2); //输出结果是:1 System.out.println(5 % 0); //不能执行,引发除以零异常
- 如果求余数运算的两个操作数中有一个或者两个都是浮点数,则允许第二个操作数是0或0.0,只是求余数运算的结果是非数NaN。
System.out.println(5.5 % 2); //输出结果是:1.5 System.out.println(5.5 % 0); //输出结果是:NaN
自增运算符“++”
- (划重点)自增运算符就是自己给自己加一
int i; i++ //等价于 i = i+1
这比i=i+1的写法更为简便。
- 自增运算符有两个要点:一是自增是单目运算符,只能操作一个操作数;二是只能操作单个数值型的变量,不能操作常量或表达式。
- 自增运算符有两种表现形式:
- 形式一:自增运算符出现在操作数的左边,先做自增操作,再使用变量
int a = 5; //让a先自增,然后执行算术运算 int b = ++a + 6; //输出a的值为6,b的值为12 System.out.println(a + "\n" + b);
- 形式二:自增运算符出现在操作数的右边,先使用变量,再做自增操作
int a = 5; //让a先执行算术运算,然后自增 int b = a++ + 6; //输出a的值为6,b的值为11 System.out.println(a + "\n" + b);
++在前先++再运算, ++在后先运算后++
自减运算符“--”
- 自减运算符也是单目运算,用法与自增运算符++基本相似,只是将操作数的值减1。
- 自减运算符有两种表现形式:
- 形式一:自减运算符出现在操作数的左边,先做自减操作,再使用变量
int a = 5; //让a先自减,然后执行算术运算 int b = --a + 6; //输出a的值为4,b的值为10 System.out.println(a + "\n" + b);
- 形式二:自减运算符出现在操作数的右边,先使用变量,再做自减操作
int a = 5; //让a先执行算术运算,然后自减 int b = a-- + 6; //输出a的值为4,b的值为11 System.out.println(a + "\n" + b);
练习:BMI指数计算器
MI,全称为BodyMassIndex,代表身体质量和体质指数,是国际上常用的衡量人体肥胖程度和是否健康的重要标准 ,BMI指数的计算公式为: BMI指数 = 体重(KG)除以身高(M)的平方,请利用Java编写程序,输入用户的身高和体重,能够计算出他(她)的BMI指数来,并将它打印在控制台上。