对于Java的初学者来说,学习选择结构的时候通常会感觉程序太长,写起来特别麻烦,碰到简单的if的基本选择结构还好,毕竟就一两个简单的选择判断选项,咬咬牙也就码出来了。但是碰到很多限制条件的程序,比方说兴趣爱好,生活作息,年龄,性别等等等等,夹杂了特殊的算法混合起来,直接让人头皮发麻,就像我今天写的一个身高预测系统一样,除了要收集到用户父母的身高啊,孩子的年龄啊,孩子的生活习惯和饮食规律也要统合起来一起计算,感觉头疼的不行,先放一张下午这个系统的部分代码图给大家看一下
我感觉这个对于逻辑思维能力的要求还是有点高的,然后我的同事一开始建议我用boolean的条件选择去做,我感觉那个重复性的工作量太多了(因为要把8种情况全部列举出来,一个一个的算),于是就放弃了
后来无意中看到一个叫三元表达式的方法,感觉非常的方便,代码的表示类似如下图
突然感觉很有递进感有木有,逻辑就清晰起来了
可惜下午在使用的过程中,还是发现了很多有所不足的地方,所以就拿if的选择结构的和这个三元表达式做一个简单的比较吧,顺便也带上很多人不太常用的switch来作比较。
简单说一说几种方法的优缺点吧
1 三元表达式的程序语言比较短,就一句,看起来比较有逻辑性,适合复杂度比较低的判断优良中差类型的程序,但是后续如果代码的数量上来了,几万条,甚至几十万条的时候,想修改其中的一部分就会非常麻烦,所以说灵活性还是不太行的。
2 if的选择结构种类比较多,也很完善,什么if else,多重if,嵌套式if还是比较丰富的,基本上能满足所有的选择结构类程序的算法,是一个比较成熟的方法
3 switch呢,就比较适合多重分支的情况,但是只适用于等值判断的情况,限制性比较大,所以一直就比较冷门
以上分析只是属于个人的一点小感受,欢迎大佬来提意见