Java漫谈6

今天这篇想聊聊数组。

在聊数组之前先聊个别的,如果想在Java中实现一个 数字-月份 转换,那我该怎么做呢?就比如数字1代表了一月份,数字2代表了二月份…数字12代表了十二月份。

当然,我现在手里的工具只有8大基本数据类型,如何构造类,流程控制语句。那么我最先能想到的,也算是目前唯一能想到的就是用if控制语句来做逐个输出。上一篇漫谈中没有提到 switch语句 ,当时真没想起来,抱歉了,以后用一篇的时间单独聊这个,所以这次我们就只聊 if 语句的方式。

如果用if来写的话,示例如下:

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

似乎这是一条路,但这样一来,结果就变成了 1月份,2月份,……,12月份, 而这样一来,与之前所说的纯数字月份就不一样了。

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

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

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

希望能使你对数组的下标功能有个新角度的认识,咱们下回见。

原文发布于微信公众号 - 怀英的自我修炼(hydzwxl)

原文发表时间:2017-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端正义联盟

我来重新学习 javascript 的面向对象(part 5)

这是最后的最后了,我会顺便总结一下各种继承方式的学习和理解。(老板要求什么的,管他呢)

9710
来自专栏黑泽君的专栏

Java语言中:在数据类型的讲解中补充的几个小问题

============================================================================= 1...

8510
来自专栏C语言C++游戏编程

世界最强的编程语言:C语言

char:字符型,用来存储小范围的整数(-128~127)和字符(所有的ASCII字符,128个),一个字节。

17320
来自专栏cmazxiaoma的架构师之路

Java小白必须会的一道面试算法题

2.4K30
来自专栏苦逼的码农

从0打卡leetcode之day 5 ---两个排序数组的中位数

最简单粗暴的就是把这两个数组头尾连接起来,然后重新给他们排序一下,冒泡排序相信你信手拈来,当然,你也可以装逼用快速排序。

27810
来自专栏walterlv - 吕毅的博客

C# 中那些可以被重载的操作符,以及使用它们的那些丧心病狂的语法糖

2018-05-19 15:20

8320
来自专栏带你撸出一手好代码

正则表达式「^」符号的正确理解方式

「^」这个符号在正则表达式的中的应用相信是所有程序员都掌握的, 因为它是正则表达式中最基础最常用的知识点。 它在正则表达式中表示两种不同的意义 01 表示匹配一...

29230
来自专栏编程

Python函数之一切皆对象

今天我们要讲的是 对象 避免误会,常老师先澄清一下,这里面说的对象指的是object,不是你的lover,也不是你的sweetheart…… 有的小伙伴可能会觉...

20570
来自专栏斑斓

函数式非凡的抽象能力

如果说面向对象思想是物质世界的哲学观,则函数式思想展现的就是纯粹的数学思维了。函数作为一等公民,它不代表任何物质(对象),而仅仅代表一种转换行为。是的,任何一个...

34950
来自专栏Java成长之路

【天梯 - Wikioi】2235 机票打折

8810

扫码关注云+社区

领取腾讯云代金券