You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java数字反转程序的循环执行逻辑疑问咨询

Java数字反转程序的循环逻辑解析

你的代码

public static void main(String[] args) {
    int n;
    System.out.print("Enter a number :");
    Scanner sc=new Scanner(System.in);
    n=sc.nextInt();
    int reversednum=0;
    while(n!=0){
        int remainder=n%10;
        reversednum=reversednum*10+remainder;
        n=n/10;
    }
    System.out.println(reversednum);
}

循环逻辑判断

输入n=123时,第2种逻辑完全正确,具体执行流程如下:

  • 第一次循环:
    • 取余数:remainder = 123 % 10 = 3
    • 更新反转数:reversednum = 0 * 10 + 3 = 3
    • 缩小原数:n = 123 / 10 = 12(整数除法自动舍去小数部分)
  • 第二次循环:
    • 取余数:remainder = 12 % 10 = 2
    • 更新反转数:reversednum = 3 * 10 + 2 = 32
    • 缩小原数:n = 12 / 10 = 1
  • 第三次循环:
    • 取余数:remainder = 1 % 10 = 1
    • 更新反转数:reversednum = 32 * 10 + 1 = 321
    • 缩小原数:n = 1 / 10 = 0,循环终止

循环内打印的输出结果

不会输出32321。如果在循环内每次计算完reversednum就用System.out.print(不换行)打印,输入123的实际输出是332321——因为每次循环都会打印当前的反转数:第一次打印3,第二次打印32,第三次打印321,连续输出就会得到这个结果。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:30:19