Java 程序:反转一个数字
要理解这个示例,你应该具备以下 Java 编程 主题的知识:
示例 1:使用 while 循环在 Java 中反转数字
class Main {
public static void main(String[] args) {
int num = 1234, reversed = 0;
System.out.println("原始数字: " + num);
// 当 num 变为 0 时结束循环
while(num != 0) {
// 从 num 中获取最后一个数字
int digit = num % 10;
reversed = reversed * 10 + digit;
// 从 num 中移除最后一个数字
num /= 10;
}
System.out.println("反转后的数字: " + reversed);
}
}
输出
反转后的数字: 4321
在这个程序中,我们使用了 while 循环来反转一个数字,具体步骤如下:
- 首先,
num
除以 10 的余数存储在变量digit
中。现在,digit
包含num
的最后一个数字,即 4。 然后将digit
添加到变量reversed
中,乘以 10 后再相加。乘以 10 是为了在反转的数字中增加一个新的位置。个位乘以 10 变成十位,十位变成百位,依此类推。在这个例子中,reversed
包含 0 * 10 + 4 = 4。 然后num
被除 以 10,现在它只包含前三个数字:123。 - 第二次迭代后,
digit
等于 3,reversed
等于 4 * 10 + 3 = 43,num
= 12 - 第三次迭代后,
digit
等于 2,reversed
等于 43 * 10 + 2 = 432,num
= 1 - 第四次迭代后,
digit
等于 1,reversed
等于 432 * 10 + 1 = 4321,num
= 0 - 现在
num
= 0,所以测试表达式num != 0
不成立,while 循环结束。reversed
已经包含了反转后的数字 4321。
示例 2:使用 for 循环在 Java 中反转数字
class Main {
public static void main(String[] args) {
int num = 1234567, reversed = 0;
for(; num != 0; num /= 10) {
int digit = num % 10;
reversed = reversed * 10 + digit;
}
System.out.println("反转后的数字: " + reversed);
}
}
输出
反转后的数字: 7654321
在上面的程序中,while 循环被 for 循环替换,其中:
- 没有使用初始化表达式
- 测试表达式保持不变(
num != 0
) - 更新/增量表达式包含
num /= 10
。
因此,在每次迭代后,更新表达式运行,它移除了 num
的最后一个数字。
当 for 循环退出时,reversed
将包含反转后的数字。