Java 程序:反转数字

要理解此示例,您应了解以下Java编程主题


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

class Main {
  public static void main(String[] args) {

    int num = 1234, reversed = 0;
    
    System.out.println("Original Number: " + num);

    // run loop until num becomes 0
    while(num != 0) {
    
      // get last digit from num
      int digit = num % 10;
      reversed = reversed * 10 + digit;

      // remove the last digit from num
      num /= 10;
    }

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

输出

Reversed Number: 4321

在此程序中,while 循环用于按照以下步骤反转数字:

  • 首先,num 除以 10 的余数存储在变量 digit 中。现在,digit 包含 num 的最后一位数字,即 4。
    然后,将 digit 乘以 10 后加到变量 reversed 中。乘以 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 Number: " + reversed);
  }
}

输出

Reversed Number: 7654321

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

  • 循环内不需要初始化表达式,因为 num 已在循环前初始化,并且我们希望避免每次迭代都重置它
  • 测试表达式保持不变 (num != 0)
  • 更新/递增表达式包含 num /= 10

因此,每次迭代后,更新表达式运行,删除 num 的最后一位数字。

当 for 循环退出时,reversed 将包含反转的数字。


另请阅读

在我们结束之前,让我们通过下面的挑战来测试你对 Java 程序反转数字的掌握程度!你能解决以下挑战吗?

挑战

编写一个函数来反转一个数字。

  • 反转并返回整数 num
  • 例如,如果 num = 1234,则预期输出为 4321
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战