# Java 程序：反转数字

> 原文： [https://www.programiz.com/java-programming/examples/reverse-number](https://www.programiz.com/java-programming/examples/reverse-number)

#### 在此程序中，您将学习在 Java 中使用`while`循环和`for`循环来反转数字。

## 示例：在 Java 中使用`while`循环反转数字

```java
public class ReverseNumber {

    public static void main(String[] args) {

        int num = 1234, reversed = 0;

        while(num != 0) {
            int digit = num % 10;
            reversed = reversed * 10 + digit;
            num /= 10;
        }

        System.out.println("Reversed Number: " + reversed);
    }
}
```

运行该程序时，输出为：

```java
Reversed Number: 4321
```

在此程序中，`while`循环用于按以下步骤反转数字：

*   首先，将`number`除以 10 的余数存储在变量`digit`中。 现在，`digit`包含`number`的最后一位，即 4。
    然后将`reversed`乘以 10 后加上`digit`。 乘 10 在倒序数字中添加一个新位置。 个位乘以 10 可得到十位，十位则可得到百位，依此类推。 在这种情况下，将`reversed`包含`0 * 10 + 4 = 4`。然后
    `num`除以 10，因此现在它仅包含前三个数字：123。
*   在第二次迭代后，`digit`等于 3，`reversed`等于`4 * 10 + 3 = 43`，并且`number = 12`
*   在第三次迭代后，`digit`等于 2，`reversed`等于`43 * 10 + 2 = 432`，并且`number = 1`
*   在第四次迭代后，`digit`等于 1，`reversed`等于`432 * 10 +1 = 4321`，并且`number = 0`
*   现在`num = 0`，因此测试表达式`num != 0`失败并且`while`循环退出。 `reversed`已经包含颠倒的数字 4321。

* * *

## 示例 2：在 Java 中使用`for`循环反转数字

```java
public class ReverseNumber {

    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 Number: " + reversed);
    }
}
```

运行该程序时，输出为：

```java
Reversed Number: 7654321
```

在上面的程序中，`while`循环被 for 循环替换，其中：

*   不使用初始化表达式
*   测试表达式保持不变（`num != 0`）
*   更新/递增表达式包含`num /= 10`。

因此，每次迭代之后，更新表达式都会运行，该表达式将删除`num`的最后一位。

当`for`循环退出时，`reversed`将包含颠倒的数字。