黑马程序员济南中心JavaEE基础阶段必会案例NO.1

黑马程序员济南中心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

   

 

转载于:https://my.oschina.net/u/3825479/blog/1802880

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值