今天图文教程,主要的知识点是“switch 条件结构”,并通过实战教你如何打造一个属于你自己的月历计算器,在此之前,先别急,静下心来好好想想:
1)你对学习Java是否有兴趣?
2)你是否能静下心来坚持不懈地学习?
嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java。如果你现在还是菜鸟,如果你现在才开始做这个行业,但是又想快速提高自己的能力,早日成为一名高手,但却苦于找不到一个可以和你一起学习,一起操作的伙伴,可以来裙“422、912加上489”,和热爱JAVA的人一起学习交流。每天一起学习企业级的项目开发技术
【No.1】输出大小月
大家都知道,每年有 12 个月,其中 1、3、5、7、8、10、12 月为大月,有 31 天;4、6、9、11 月为小月;平年 2 月有 28 天,闰年 29 天。
好,那么知道了这些前置知识,就可以开始带领大家亲手打造一款月历计算器了。
首先创建一个类文件,名为MonthlyCalendar,输入代码如下:
运行效果如下:(图3)



程序居然会选择性的执行我们的代码了,而不是一股脑的自上至下的执行了。这就是传说中的“控制流”,也就是通过一些代码来控制程序的执行过程。

switch 关键字告诉计算机接下来需要你做一些判断了,要选择性的执行一部分代码,而不是所有的代码都要执行。
switch后面的括号里可以放一个变量,也可以放一个常量,也可以是一个表达式(如2+3)。但是请注意,这里面的值只能是整型或字符型(short、int、char),不能放浮点型(float、double)、字符串类型(String,但是从 Java 7 开始已经支持 String 类型了)和其它对象类型(Object)。
紧接着后面要跟一对大括号,大括号里面是 switch 可以控制的范围,这个范围也叫做 switch 的“作用域”。
在这段作用域之中,使用 case 关键字来检测 switch 后面小括号里的表达式的值是否与 case 关键字后面跟随的常量相等,如果是相等的就执行冒号后面的语句,否则跳到下一个 case 关键字处重复执行检测。
那么如果符合了 case 的检测,语句执行到哪里算是结束呢?就是在遇到了 break 关键字时,程序会跳出整个 switch 的作用域,从 switch 的右大括号后面的第一条语句开始执行。
而 break 关键字是可以省略的,如果省略了 break,那么程序会一直向下执行,直到遇到 break 或者走到了 switch 作用域的末尾为止。
上面的一大坨文字已经看得快要厌烦了吧,不要着急,还有最后一个关键字要介绍,介绍完了我们就开始做下一个有意思的小程序。
这个关键字就是 default,它和前面的 case 很像,只是后面不需要跟一个常量了,直接写冒号就可以了。它的作用是——当前面所有 case 后面的常量都没有跟 switch 括号里表达式的值匹配时,程序就会执行 default 块中的代码。当然 default 模块也是可以省略不写的,这样当程序没有匹配到对应的 case 块时,就会直接退出 switch 代码段,相当于 switch 代码段什么都没有做。
好,到了这里,大家对 switch 的语法应该有了一个初步的认识了,接下来我们改进一下上面的这个月历程序,来加深对 switch 用法的印象。
【No.2】从某月到年底还剩下多少天
输入代码如下:


运行结果如下:

大家可以对比一下这段代码与第一个程序的代码有什么区别:
1.这段代码删除了每一个 case 块的 break 关键字——这表示当变量 month 匹配到任何一个 case 块中的常量时,除了执行本 case 块的语句外,还会继续向下执行,直到遇到 break 关键字或者 switch 块末尾才结束。
2.这段代码删除了 default 代码块——这表示当变量 month 没有匹配到任何一个 case 块中的常量时,将会直接退出 switch 代码段,从它的右大括号后面的第一句语句开始继续执行程序。
这段程序的 2 月份计算其实是有问题的,因为它没有考虑闰年 2 月是 29 天的情况,这个就算是给大家留的作业吧,请你对程序 2 作出改进,将 2 月份根据平年闰年的不同累加不同的天数。
总结
其实 switch 语法很简单,大家可以尝试这用它写一些其它好玩的程序,记住学习编程其实只是熟能生巧,不要畏惧代码,一定要动手多写,如果想要学习可以加裙和大家一起沟通交流,一起每天晚上学习实战项目
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
