跳到主要内容

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 将包含反转后的数字。