小白学JAVA之四——利用循环结构逆序输出任意正整数
一. 原理分析
以输入的正整数1234为例:
因此,可以利用循环结构,每一次执行相同的取余和取整循环体,直至取整的结果为零。
代码如下:
public static void main(String[] args) {
// 1.提示用户输入一个正整数并使用变量记录
System.out.println("请输入一个正整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 2.使用while循环进行拆分并打印
while(num > 0) {
System.out.print(num % 10); // 拆分个位数
num /= 10; // 丢弃个位数
}
}
二. 改进
上一部分的代码只是每提取一次个位数就将它从循环中输出,并没有重新生成一个真正的逆序整数,因此需要将代码进行改进:
- 我们可以声明一个新变量用于存储生成的逆序整数并将它初始化为0。在执行循环体中,只需将该变量乘以10提升阶位,再与每次提取出的个位数相加即可。
代码如下:
/*
编程使用while循环实现任意正整数的反向输出
*/
import java.util.Scanner;
public class WhileReverseTest {
public static void main(String[] args) {
// 1.提示用户输入一个正整数并使用变量记录 123
System.out.println("请输入一个正整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 2.使用while循环拆分整数中的每个数字并记录到变量中
int res = 0;
int temp = num; // 指定变量作为num的替身
while(temp > 0) {
res = res*10 + temp % 10; // 3 32 321
temp /= 10; // 12 1 0
}
// 3.打印逆序后的结果
System.out.println(num + "逆序后的结果是:" + res);
}
}