本帖最后由 小鲁哥哥 于 2017-8-25 11:17 编辑
【黑马程序员济南】JavaEE基础阶段必会案例NO.1
黑马程序员课程内容丰富多样,每个知识点我们都设计有新奇的案例让大家练习。黑马程序员训练营的课程也是案例驱动教学,每天都会进行大量的代码练习。今天我们就来一起做一个基础阶段第4天的一个小案例。
案例要求:设计一个程序,用户输入一个整数,返回这个整数是几位数,要求用到方法的相关知识。
案例分析:我们要用到的知识点:键盘录入(分为3步),方法(参数是整数,有返回值,返回值也是整数)
分析完一个大概以后我们可以写出以下代码: [Java] 纯文本查看 复制代码 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] 纯文本查看 复制代码 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] 纯文本查看 复制代码 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] 纯文本查看 复制代码 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
|