示例1:在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循环用于按以下步骤反转数字:
- 首先,将num除以10的余数存储在变量digit中 。现在,该数字包含num的最后一位,即4。
然后将数字乘以10后,将其添加到反向变量中。乘以10将在反向数中添加一个新位置。十分之一乘以10可得到第十位,十分可乘以百,依此类推。在这种情况下, reversed包含0 * 10 + 4 = 4。
然后将num除以10,这样现在它仅包含前三个数字:123。 - 在第二次迭代后, 数字等于3, 反向等于4 * 10 + 3 = 43且num = 12
- 在第三次迭代后, 数字等于2,取反等于43 * 10 + 2 = 432, num = 1
- 第四次迭代后, 数字等于1,取反等于432 * 10 +1 = 4321, num = 0
- 现在num = 0,因此测试表达式
num != 0
失败,而while循环退出。 反向已包含反向编号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将包含相反的数字。