Java之switch语句

在编写代码时,逻辑判断是避免不了的,大量的if-else判断使得往后的维护工作很复杂,怎样才能将大量的if-else分支转换成switch,提高代码的可维护性,大家都知道switch能处理的数据类型很有限,而且case条件不能是表达式。在这时间的工作中发现,我们可以通过一个转换函数,将if-else条件转换成case条件,从而使用switch语句来代替恶心的if-else。大家先看看下面这两段代码:
[b]使用if-else:[/b]

package codeart.caseusage;

public class Human {

public void procAge(int age) {
// 未成年人
if (age > 0 && age <= 18){
// 大量逻辑
// ...
// 青年
} else if (age > 18 && age <= 30) {
// 大量逻辑
// ...
// 中年
} else if (age >30 && age<=50) {
// 大量逻辑
// ...
// 中老年
} else if (age > 50 && age <= 70){
// 大量逻辑
// ...
// 高龄
} else {
// 大量逻辑
// ...
}

}

}

[b]换成switch[/b]

package codeart.caseusage.withcase;

public class Human {

private enum AgeBound {
child, young, man, old, other
};

private AgeBound calcCase(int age) {
if (age > 0 && age <= 18) {
return AgeBound.child;
} else if (age > 18 && age <= 30) {
return AgeBound.young;
} else if (age > 30 && age <= 50) {
return AgeBound.man;
} else if (age > 50 && age <= 70) {
return AgeBound.old;
} else {
return AgeBound.other;
}
}

public void procAge(int age) {
switch (calcCase(age)) {
case child:
// 大量逻辑
// ......
break;
case young:
// 大量逻辑
// ......
case man:
// 大量逻辑
// ......
break;
case old:
// 大量逻辑
// ......
case other:
// 大量逻辑
// ......
default:
}
}

}

通过引入函数calcCase方法,把if-else条件抽出去,转换成switch能处理的类型,这样procAge函数无论从阅读和维护都容易多了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值