表达式(expression)由值、变量和运算符(operator)组成。程序通过表达式完成计算、拼接、比较和更新。
算术运算符
Java 支持加、减、乘、除和取模等常见算术运算。操作数的类型会影响运算结果。
当两个操作数都是整数时,/ 执行整数除法,小数部分会直接截断。
System.out.println(21 / 4); // 5取模运算符(modulo operator)% 用于计算两个整数相除后的余数。
System.out.println(22 % 3); // 1
System.out.println(4 % 7); // 4知识测验
题目
在 Java 中,22 % 3 的结果是多少?
逆序三位数
整数除法和取模经常一起使用,用来拆解整数的每一位。
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个三位整数:");
int num = scanner.nextInt();
int a = num / 100;
int b = num / 10 % 10;
int c = num % 10;
System.out.printf("反转结果:%d%n", c * 100 + b * 10 + a);一次可能的运行过程:
请输入一个三位整数:520
反转结果:25结果显示为 25,是因为反转后的数是 025,作为整数输出时前导 0 会被省略。
知识测验
题目
如果 num = 520,那么 num / 10 % 10 得到的是哪一位数字?
复合运算符
复合赋值运算符(compound assignment operator)可以让更新变量的表达式更简洁。
例如:
a += b等价于a = a + ba -= b等价于a = a - ba *= b等价于a = a * ba /= b等价于a = a / ba %= b等价于a = a % b
字符串拼接
+ 不只可以用于数字相加,也可以用于字符串拼接(string concatenation)。
String s = "Hello" + "World";
s += "!";
System.out.println(s);运行结果:
HelloWorld!知识测验
题目
下面哪一句与 a += b 等价?
动手练习
把秒数拆成时分秒
把一个总秒数拆成小时、分钟和剩余秒数,非常适合巩固整数除法和 % 的组合用法。
- 读取一个整数 totalSeconds。
- 用整除和取模分别求出小时、分钟、秒。
- 按“3661 秒 = 1 小时 1 分钟 1 秒”这样的格式输出。