Skip to content

Latest commit

 

History

History
78 lines (53 loc) · 2.47 KB

135.md

File metadata and controls

78 lines (53 loc) · 2.47 KB

Java 程序:反转数字

原文: https://www.programiz.com/java-programming/examples/reverse-number

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

示例:在 Java 中使用while循环反转数字

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);
    }
}

运行该程序时,输出为:

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循环反转数字

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);
    }
}

运行该程序时,输出为:

Reversed Number: 7654321

在上面的程序中,while循环被 for 循环替换,其中:

  • 不使用初始化表达式
  • 测试表达式保持不变(num != 0
  • 更新/递增表达式包含num /= 10

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

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