黑马程序员济南中心JavaEE基础阶段必会案例NO.1
黑马程序员课程内容丰富多样,每个知识点我们都设计有新奇的案例让大家练习。黑马程序员训练营的课程也是案例驱动教学,每天都会进行大量的代码练习。今天我们就来一起做一个基础阶段第4天的一个小案例。
案例要求:设计一个程序,用户输入一个整数,返回这个整数是几位数,要求用到方法的相关知识。
案例分析:我们要用到的知识点:键盘录入(分为3步),方法(参数是整数,有返回值,返回值也是整数)
分析完一个大概以后我们可以写出以下代码:
[Java] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 | public class Test07_jiWeiShu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); } public static int method(int num){
return 0; } } |
接下来我们的任务就是找到一个方法,如何计算这个整数是几位数。首先要明确一件事:我们生活中用的数是几进制的?? 当然,是十进制的,满10进1 。也就是说假设我们用户输入的是1234这个数。
我们把1234 / 10 得到的是123,因为java语言里整数相除得到的整数,也就是只保留商。
我们把123 / 10 得到的是12
12 / 10 得到 1
1 / 10 得到 0
我们一共除了几次10? 数一下,我们除了4次,这个数正好也是4位数,好了,规律已经出来了。
我们总结一下: 对于一个我们不确定它位数的任意整数,我们不断的让它除10,直到商是0为止,我们统计出一共除了几次就知道它是几位数了(求和思想),因此我们要用到循环,循环结束的条件就是结果为0 就停止,ok分析结束,是时候展现真正的技术了!
[Java] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | public class Test07_jiWeiShu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); } public static int method(int num){ int count = 1; //定义一个计数器变量 while(num / 10 != 0) { //如果num/10不是0,说明它至少是个2位数 num = num /10; //让num不断的除10 count ++; //同时让计数器增加 } return count; //循环结束,返回count } } |
好的,这个方法我们已经写完了,但是要注意,方法不调用是不执行的,因此我们要在main方法中调用这个方法,怎么调用方法? 直接写方法名(),括号里填写需要传入的参数,如果一个方法不需要参数那就只写个括号就行了。
有的方法有返回值,就需要我么用变量接收返回值,这里要注意变量的数据类型要和返回值的数据类型一致。我们这里是int类型的。不是所有的方法都有返回值,没有就不用接收啦。
ok,让我们完成这个代码:
[Java] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 | public class Test07_jiWeiShu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); int count = method(num); System.out.println(num+"是一个"+count+"位数。"); } public static int method(int num){ int count = 1; //定义一个计数器变量 while(num / 10 != 0) { //如果num/10不是0,说明它至少是个2位数 num = num /10; //让num不断的除10 count ++; //同时让计数器增加 } return count; //循环结束,返回count } } |
好,运行一下:
大功告成! 其实,每个案例都有很多种写法,不同的人可能有不同的思路,黑马程序员训练营也是非常鼓励大家开动脑筋积极思考的。有的同学进度比较快,自学了String类的相关知识,然后灵光一闪相出了另一种解法:
[Java] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 | public class Test08_jiWeiShu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); int count = method(num); System.out.println(num+"是一个"+count+"位数。"); } public static int method(int num){ String s = ""+num; //把数字拼接成字符串 int count = s.length(); //调用方法获得字符串的长度 return count; //循环结束,返回count } } |
我只能说,小伙子你太有才了!!~双击666