[java] 输出一个整数的每一位,如:123的每一位是1 , 2 , 3

您所在的位置:网站首页 java输入正整数输出倒数到零 [java] 输出一个整数的每一位,如:123的每一位是1 , 2 , 3

[java] 输出一个整数的每一位,如:123的每一位是1 , 2 , 3

2024-07-06 11:16| 来源: 网络整理| 查看: 265

问题解析

想要得到整数的每一位,可以采用 % 10 的方法来获取它的末位数字。加入我们输入 123 , 如果在循环体内加入 % 10 和 / 10 ,我们就能得到逆序的输出:3 2 1。为了让数字正序打印,我们需要让 % 10 的数字分别为 1,12, 123,解决方法为嵌套。

设定一个函数用于打印,设定条件当输入值不为个数时,就把输入值 / 10 作为参数再次传给该函数,这样重复判定直到函数得到的参数为个数时,继续用 % 10 打印参数末位的数字,退出最里层循环后进入两位数参数的循环层,继续打印操作,直到所有循环执行完,每一位就都就输出完毕。

解题思路 main函数

设定输入数为 n ,tmp = n,将两数传入 print 函数中。

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入数字:"); int n = scanner.nextInt(); int tmp = n; print(n,tmp); } print函数 首先判断输入参数是否为负数,若为负数使其变为正数并输出一个 负号。递归:判断参数是否为一位数,若不是一位数就 / 10 继续传参给 print 函数,一直到参数为个位数为止,继续下一步骤。打印每一位:使用 % 10 来打印参数的末位数,退出该次循环后将打印上层循环的参数末位一直到最外层循环。因为每一位都需要 逗号 隔开,所以在打印每一位后单独输出 “, ”直到个位,当参数等于用户输入的数字 n 时,就是后面不需要加 逗号 的,这时候 tmp 就派上用场啦。 public static void print (int n, int tmp) { if(n 9) { print(n / 10, tmp);//递归 } System.out.print(n % 10);//打印个位数 if (n != tmp) { System.out.print(", "); } }

用户输入: n = 123; tmp = n = 123;

第一次循环:n == 123 > 9 => n / 10 == 12 成为参数传入 print 函数体 第二次循环:n == 12 > 9 => n / 10 == 1 传入函数 第三次循环:n == 1 < 9 ,继续打印操作

第一次打印个位:n == 1 % 10 == 1 第一次打印逗号:n == 1 != tmp , 输出 “, ”,退出第三次循环,进入第二次循环的打印部分 第二次打印:n == 12 % 10 == 2 第二次打印逗号:n ==12 != tmp , 输出 “, ”,退出第二次循环,进入第一次循环的打印部分 第三次打印:n == 123 % 10 == 3 第三次不打印逗号:n == 123 == tmp , 不打印逗号,退出所有循环

全部代码 public static void print (int n, int tmp) { if(n 9) { print(n / 10, tmp);//递归 } System.out.print(n % 10);//打印个位数 if (n != tmp) { System.out.print(", "); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入数字:"); int n = scanner.nextInt(); int tmp = n; print(n,tmp); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3