在此程序中,您将学习在Java中使用while循环和for循环来反转数字。
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); } }
运行该程序时,输出为:
反转后的数字: 4321
在此程序中,while循环用于按以下步骤反转数字:
首先,将num除以10的余数存储在变量digit中。 现在,digit包含num的最后一位,即4,然后将digit乘以10后,将其添加到反向变量中。乘以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。
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将包含相反的数字。