# Java 程序：检查数字是否为回文

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

#### 在此程序中，您将学习如何用 Java 检查数字是否为回文。 这是通过使用`for`和`while`循环来完成的。

## 示例 1：使用`while`循环检查回文的程序

```java
public class Palindrome {

    public static void main(String[] args) {

        int num = 121, reversedInteger = 0, remainder, originalInteger;

        originalInteger = num;

        // reversed integer is stored in variable 
        while( num != 0 )
        {
            remainder = num % 10;
            reversedInteger = reversedInteger * 10 + remainder;
            num  /= 10;
        }

        // palindrome if orignalInteger and reversedInteger are equal
        if (originalInteger == reversedInteger)
            System.out.println(originalInteger + " is a palindrome.");
        else
            System.out.println(originalInteger + " is not a palindrome.");
    }
}
```

运行该程序时，输出为：

```java
121 is a palindrome number.
```

在这个程序中

*   首先，给定数字（`num`）的值存储在另一个整数变量`originalInteger`中。 这是因为，我们需要在最后比较反向编号和原始编号的值。
*   然后，使用`while`循环循环遍历`num`，直到等于 0。
    *   在每次迭代中，`number`的最后一位存储在`remainder`中。
    *   然后，将`remainder`添加到`reversedInteger`，以便将其添加到下一个位置值（乘以 10）。
    *   然后，除以 10 后，从`num`中删除最后一位数字。
*   最后，比较`reversedInteger`和`originalInteger`。 如果相等，则为回文数。 如果不是，则不是。

以下是执行的步骤：

回文执行步骤

| `num` | `num != 0` | `remainder` | `reversedInteger` |
| --- | --- | --- | --- |
| 121 | `true` | 1 | `0 * 10 + 1 = 1` |
| 12 | `true` | 2 | `1 * 10 + 2 = 12` |
| 1 | `true` | 1 | `12 * 10 + 1 = 121` |
| 0 | `false` | - | 121 |

* * *

## 示例 2：使用`for`循环检查回文的程序

```java
public class Palindrome {

    public static void main(String[] args) {

        int num = 11221, reversedInteger = 0, remainder, originalInteger;

        originalInteger = num;

        // reversed integer is stored in variable
        for( ;num != 0; num /= 10 )
        {
            remainder = num % 10;
            reversedInteger = reversedInteger * 10 + remainder;
        }

        // palindrome if orignalInteger and reversedInteger are equal
        if (originalInteger == reversedInteger)
            System.out.println(originalInteger + " is a palindrome.");
        else
            System.out.println(originalInteger + " is not a palindrome.");
    }
}
```

运行该程序时，输出为：

```java
11221 is not a palindrome.
```

在上面的程序中，使用`for`循环代替`while`循环。

在每次迭代中，都会执行`num /= 10`并检查条件`num !=0`。