运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
- | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
-- | 自减一 | 先取值再减一,或先减一再取值 | a-- 或 --a |
int a = 12; System.out.println(-a); int b = a++; System.out.println(b); b = ++a; System.out.println(b);上述代码第 2 行是 -a,是把 a 变量取反,结果输出是 -12。第 4 行代码是先把 a 赋值给 b 变量再加一,即先赋值后 ++,因此输出结果是 12。第 6 行代码是把 a 加一,然后把 a 赋值给 b 变量,即先 ++ 后赋值,因此输出结果是 14。
图 1 输出结果
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
+ | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a + b |
- | 减 | 求 a 减 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的积 | a * b |
/ |
除 | 求 a 除以 b 的商 | a / b |
% |
取余 | 求 a 除以 b 的余数 | a % b |
int a = 4, b = 2, c = 3; int d = a * (b + c) % c;这种运算规则与数学运算中的规则是相同的。首先计算赋值符号(=)右边配对的括号内的值,其次按从左向右的结合方向计算乘法,最后做求余运算,表达式的结果为 2, 然后把 2 赋值给 d。
public static void main(String[] args) { float f1 = 9 % 4;// 保存取余后浮点类型的结果 double da = 9 + 4.5; // 双精度加法 double db = 9 - 3.0; // 双精度减法 double dc = 9 * 2.5; // 双精度乘法 double dd = 9 / 3.0; // 双精度除法 double de = 9 % 4; // 双精度取余 System.out.println("整数的算术运算"); // 整数的加、减、乘、除和取余 System.out.printf("9+4=%d \n", 9 + 4); System.out.printf("9-4=%d \n", 9 - 4); System.out.printf("9*4=%d \n", 9 * 4); System.out.printf("9/4=%d \n", 9 / 4); System.out.printf("9%%4=%d \n", 9 % 4); System.out.println("\n浮点数的算术运算"); // 浮点数的加、减、乘、除和取余 System.out.printf("9+4.5f=%f \n", 9 + 4.5f); System.out.printf("9-3.0f=%f \n", 9 - 3.0f); System.out.printf("9*2.5f=%f \n", 9 * 2.5f); System.out.printf("9/3.0f=%f \n", 9 / 3.0f); System.out.printf("9%%4=%f \n", f1); System.out.println("\n双精度数的算术运算"); // 双精度数的加、减、乘、除和取余 System.out.printf("9+4.5=%4.16f \n", da); System.out.printf("9-3.0=%4.16f \n", db); System.out.printf("9*2.5=%4.16f \n", dc); System.out.printf("9/3.0=%4.16f \n", dd); System.out.printf("9%%4=%4.16f \n", de); System.out.println("\n字符的算术运算"); // 对字符的加法和减法 System.out.printf("'A'+32=%d \n", 'A' + 32); System.out.printf("'A'+32=%c \n", 'A' + 32); System.out.printf("'a'-'B'=%d \n", 'a' - 'B'); }保存文件并运行,输出的结果如下所示。
整数的算术运算 9+4=13 9-4=5 9*4=36 9/4=2 9%4=1 浮点数的算术运算 9+4.5f=13.500000 9-3.0f=6.000000 9*2.5f=22.500000 9/3.0f=3.000000 9%4=1.000000 双精度数的算术运算 9+4.5=13.5000000000000000 9-3.0=6.0000000000000000 9*2.5=22.5000000000000000 9/3.0=3.0000000000000000 9%4=1.0000000000000000 字符的算术运算 'A'+32=97 'A'+32=a 'a'-'B'=31本示例中使用了 4 种类型来执行算术运算。其中,整数类型的结果最容易理解,浮点型和双精度型返回的结果都带有小数,字符型将会把字符转换为 ASCII 码再运算。
运 算 符 | 名 称 | 例 子 |
---|---|---|
+= | 加赋值 | a += b、a += b+3 |
-= | 减赋值 | a -= b |
*= | 乘赋值 | a *= b |
/= | 除赋值 | a /= b |
%= | 取余赋值 | a %= b |
int a = 1; int b = 2; a += b; // 相当于 a = a + b System.out.println(a); a += b + 3; // 相当于 a = a + b + 3 System.out.println(a); a -= b; // 相当于 a = a - b System.out.println(a); a *= b; // 相当于 a=a*b System.out.println(a); a /= b; // 相当于 a=a/b System.out.println(a); a %= b; // 相当于 a=a%b System.out.println(a);运行结果如下图所示:
图 2 运行结果
本文链接:http://task.lmcjl.com/news/10047.html