我不理解使用这一行的含义
这是在while块上。
import java.util.Scanner;
public class ReverseNumberWhile {
public static void main(String[] args){
int num = 0;
int reversenum = 0;
System.out.println("Enter your number and press enter: ");
Scanner input = new Scanner(System.in);
num = input.nextInt();
while(num != 0) {
reversenum = reversenum * 10;
reversenum = reversenum + num%10;
num = num/10;
}
System.out.println("Reverse of input number is: " + reversenum);
}
}
答案 0 :(得分:2)
你去了,评论道:
while(num != 0)
{
reversenum = reversenum * 10; //This moves the reversenum attained in previous iteration to one higher place value
reversenum = reversenum + num%10; // num%10 gives you the last digit which is added to the existing reversenum
num = num/10; //This leaves the remaining digits removing rightmost
}
答案 1 :(得分:1)
此代码生成的数字reversenum
与num
的位数相同,但顺序相反。例如,如果num==12345
,则为reversenum==54321
。它的工作原理是逐个切割num
的数字,从最后一个开始,然后将它们添加到reversenum
。循环可以描述如下:
num
的最后一位数添加到reversenum
(前两行)。num
的最后一位数字(最后一行)。只要num
中还有任何数字,也就是说,当它为非零时,会重复此操作。
前两行实际上可以写成一行:
reversenum = reversenum * 10 + num % 10;
这种方式实际上更有意义,因为你可以看到这里发生了什么:我们采取reversenum
,将其数字向左移动(乘以10),然后添加最后一位数字num
(由num % 10
获得)。