
在此程序中,您将学习如何用Java检查数字是否为回文。这是通过使用for和while循环来完成的。
示例1:使用while循环检查回文的程序
public class Palindrome {
    public static void main(String[] args) {
        int num = 121, reversedInteger = 0, remainder, originalInteger;
        originalInteger = num;
        //反向整数存储在变量中
        while( num != 0 )
        {
            remainder = num % 10;
            reversedInteger = reversedInteger * 10 + remainder;
            num  /= 10;
        }
        //如果orignalInteger和reversedInteger相等,则回文
        if (originalInteger == reversedInteger)
            System.out.println(originalInteger + " 是回文。");
        else
            System.out.println(originalInteger + " 不是回文。");
    }
}运行该程序时,输出为:
121 是回文。
在这个程序中
- 首先,给定数字(num)的值存储在另一个整数originalInteger变量中。这是因为,我们需要在最后比较反向数字和原始数字的值。 
- 然后,使用while循环循环遍历num,直到等于0。 
- 每次迭代时,num的最后一位存储在中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循环检查回文的程序
public class Palindrome {
    public static void main(String[] args) {
        int num = 11221, reversedInteger = 0, remainder, originalInteger;
        originalInteger = num;
        //反转整数存储在变量中
        for( ;num != 0; num /= 10 )
        {
            remainder = num % 10;
            reversedInteger = reversedInteger * 10 + remainder;
        }
        //回文,如果原整数和反整数相等
        if (originalInteger == reversedInteger)
            System.out.println(originalInteger + " is a palindrome.");
        else
            System.out.println(originalInteger + " is not a palindrome.");
    }
}运行该程序时,输出为:
11221 is not a palindrome.
在上面的程序中,使用for循环代替while循环。
在每次迭代中,num /= 10都会执行并检查条件num !=0。
