Java漫谈6

时间:2022-05-03
本文章向大家介绍Java漫谈6,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天这篇想聊聊数组。 在聊数组之前先聊个别的,如果想在Java中实现一个 数字-月份 转换,那我该怎么做呢?就比如数字1代表了一月份,数字2代表了二月份…数字12代表了十二月份。 当然,我现在手里的工具只有8大基本数据类型,如何构造类,流程控制语句。那么我最先能想到的,也算是目前唯一能想到的就是用if控制语句来做逐个输出。上一篇漫谈中没有提到 switch语句 ,当时真没想起来,抱歉了,以后用一篇的时间单独聊这个,所以这次我们就只聊 if 语句的方式。 如果用if来写的话,示例如下:

public void trans(int i){    if(i==1){
        System.out.println("一月份");//输出一月份
    }else if(i==2){
        System.out.println("二月份");//输出二月份
    }
    ...    else if(i==12){
        System.out.println("十二月份");//输出十二月份
    }
}

我们再来回顾一下这整个过程,输入一个值i,判断它是不是等于1,如果是的话就输出,不是的话就判断它是不是等于2,如果是的话,再输出,不是的话再判断是不是等于3,如果是的话……等等,它的判断语句已经出现了重复,而且这种重复只需要同时改变输入的值和其中的一个判断因子,也就是说整个判断的框架 i==m 这个框架是没有变的。那既然它重复了,那能不能用循环来代替这样的重复,也就是1-12个月。所以我可以把上面的方法改成for循环的,如下:

public void trans(int i){    
    for(int m=1; m<13; m++){        
        if(i==m){
            System.out.println(m + "月份");//输出一月份
        }
    }
}

似乎这是一条路,但这样一来,结果就变成了 1月份,2月份,……,12月份, 而这样一来,与之前所说的纯数字月份就不一样了。 不过这次用的for循环倒是给了一个启发,就是for循环中的循环次数,也就是这里的m,它就像一个局外人一样,告诉我们,循环进行到了第几次了。如果我们能把月份的具体名称放到一间“教室”里面,并有序的排上坐,也就是我点名是说一号桌的时候,一月份会跳出来说声“到,我是一月份”,那么这样一来问题就会被解决。Java中与之对应的充当这个角色的就是数组,它就是一个能装同一类的对象的一个数据组。数组本身还自带一个长度值,并且每一个元素也会自带一个下标,用于表示自己在数组中的位置。而我们就可以利用这个特性来改造上面的方法。

public void trans(int i){
    String strM = ["一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份", "十月份", "十一月份", "十二月份"];    for(int m=1; m<13; m++){        if(i==m){
            System.out.println(strM[m]);//输出一月份
        }
    }
}

再进一步,如果说 strM[m] 能达到效果,那也就是说 strM[i] 也能得到效果。那这样一来用数组下标能快速定位这一特点,就能在不用for循环的情况下得到值。如下:

public void trans(int i){
    String strM = ["一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份", "十月份", "十一月份", "十二月份"];
    System.out.println(strM[i]);
}

数组的下标是数组的一个很常用的功能,今天我们通过月份转换的例子聊到了这个数组的功能,而在最后的方法中构造数组时,我使用的是数组的三大构造方法之一的一步到位构造法,其它还有空壳法 String strM[] = new String[]{}, 定义框架法 String strM[] = new String[5]。 希望能使你对数组的下标功能有个新角度的认识,咱们下回见。