Java中的算术运算符主要有+(加号)、—(减号)、*(乘号)、/(除号)、%(求余),它们都是二元运算符。Java中算术运算符的功能及使用方式如表1所示。
表1 Java算术运算符
运算符 |
说明 |
实例 |
结果 |
+ |
加 |
|
27.45 |
- |
减 |
4.56-0.16 |
4.4 |
* |
乘 |
5*12 |
60 |
/ |
除 |
7/2 |
3 |
% |
取余数 |
12%10 |
2 |
其中“+”和“-”运算符还可以作为数据的正负符号,例如+5,-7。
下面通过一个小程序来介绍使用算术运算符的方法。
例 在项目中创建类Arith,在主方法中定义变量,使用算术运算符将变量的计算结果输出。
public class Arith { //创建类
public static void main(String[] args) { //主方法
float number1 =
int number2 = 152; //声明int型变量并赋值
System.out.println("和为:" + number1 + number2); //将变量相加之和输出
System.out.println("差为:" + (number2 - number1)); //将变量相减之差输出
System.out.println("积为:" + number1 * number2); //将变量相乘的积输出
System.out.println("商为:" + number1 / number2); //将变量相除的商输出
}
}
运行结果如图1所示。
图1 运行结果
在应用算术运算符时,可以分为对整型数据的运算和对浮点型数据的运算,下面进行详细介绍。
整型数据的“+”、“-”、“*”、的运算与数学中的运算相同,这里不再介绍,下面介绍整型数据间的“/”和“%”运算。
l 整数的除法(运算符“/”)运算
当整数间进行除法运算时,其结果将舍弃小数部分,并且忽略四舍五入,最终的结果为商的整数部分,所以通过计算机来计算“5/3*
例 在项目中创建类Arith1,在主方法中定义变量,使用“/”运算符进行除法运算,并输出计算结果。
public class Arith1 {
public static void main(String[] args) { // 主方法
int i1 = 7 / 3; // 在数学计算中其结果约为2.33
int i2 = 11 / 3; // 在数学计算中其结果约为3.67
int i3 = -7 / 2; // 在数学计算中其结果为-3.5
int i4 = 0 / 9;
System.out.println("7/3=" + i1); // 输出结果为:2
System.out.println("11/3=" + i2); // 输出结果为:3
System.out.println("-7/2=" + i3); // 输出结果为:-3
System.out.println("0/9=" + i4); // 输出结果为:0
}
}
运行结果如图2所示。
图2 运行结果
l 整数的求余(运算符“%”)运算
当整数间进行求余运算时,其运算结果为整数除法运算后的余数。
例 在项目中创建类Arith2,在主方法中定义变量,使用“%”运算符进行求余运算,并输出计算结果。
public class Arith2 {
public static void main(String[] args) { // 主方法
int i1=11%4; //结果为:3
int i2=8%4; //结果为:0
int i3=9%10; //结果为:9
int i4=-7%3; //结果为:-1
int i5=0%9; //结果为:0
System.out.println("11%4="+i1);
System.out.println("8%4="+i2);
System.out.println("9%10="+i3);
System.out.println("-7%3="+i4);
System.out.println("0%9="+i5);
}
}
运行结果如图3所示。
图3 运行结果
l 将一个整数除以0或除以0求余的运算
当进行一个整数除以0或除以0求余运算时,虽然可通过编译,但在运行时会抛出java.lang.ArithmeticException异常,例如:
public static void main(String[] args) { // 主方法
int i1=11/0; //编译成功,但运行时抛出异常
int i2=9%0; //编译成功,但运行时抛出异常
System.out.println(i1);
System.out.println(i2);
}
以上代码运行时抛出如图4所示的异常。
图4 抛出的异常信息
浮点型数据同样可以应用算术运算符进行算术操作,同整型数据运算一样,运算结果的类型和参与计算中取值范围最大的数据的类型一致。如若存在double型的数据进行运算,则运算的结果为double型,否则若存在float型数据,那么结果就为float型。
当浮点型数据进行运算时,计算机计算出的小数点后的n位,与实际的数值会有一定的误差,它只能尽量地去接近实际值。
例如,计算float型数据4.0减去浮点型数据2.9的结果,在数学计算中该结果为1.1,但计算机计算出的结果只能尽量地去接近1.1。
float f=
System.out.println(f); //输出结果为:1.0999999
注意:在浮点型数据的算术运算中,若进行一个浮点型数据除以0或除以0求余的运算,在运行时并不会抛出异常,而会得到表示无穷大、无穷小或为NaN的特殊值:正浮点数除以0,结果为Infinity,表示无穷大;负浮点数除以0,结果为-Infinity,表示无穷小;浮点数除以0求余,结果为NaN。
例 在项目中创建类Arith3,在主方法中进行浮点型数据除以0或除以0求余的运算,并输出计算结果。
public class Arith3 {
public static void main(String[] args) { // 主方法
float f1=
float f2=
float f3=
float f4=
System.out.println(f1); //输出结果为:Infinity
System.out.println(f2); //输出结果为:-Infinity
System.out.println(f3);
//输出结果为:
System.out.println(f4);
//输出结果为:
}
}
运行结果如图5所示。
图5 运行结果