理解为什么我的代码会反转一个数字

时间:2013-12-18 18:19:29

标签: java

所以我在网上看到了这个代码,我试图围绕代码如何扭转数字顺序。有人可以帮我吗?另外,有没有办法可以将while循环更改为for循环?我没有看到增量,所以代码让我失去了一点。

import java.util.Scanner; 
class Challenge{ 

 public static void main(String args[]){ 

///{write you code here  
 int n, reverse = 0;

      System.out.println("Enter the number to reverse");
      Scanner in = new Scanner(System.in);
      n = in.nextInt();


      while( n != 0 )
      {
          reverse = reverse * 10;
          reverse = reverse + n%10;
          n = n/10;
      }
 ///}  

  System.out.println("Reverse is :"+reverse);  
} 

} 

1 个答案:

答案 0 :(得分:2)

说出你的号码是123。第一次循环时,reverse0开始,所以这一行什么都不做。

reverse = reverse * 10;

然而,这一行取n的最后一位数。

reverse = reverse + n%10;

现在,reverse3。 最后一行将n除以10,丢弃任何余数

n = n/10;

所以现在n12

第二次通过循环,发生以下情况:

reverse = reverse * 10;

reverse现在是30

reverse = reverse + n%10;

reverse现在是32

n = n/10;

n现在是1

上次循环:

reverse = reverse * 10;

reverse现在是320

reverse = reverse + n%10;

reverse现在是321

n = n/10;

n现在是0