如果程序中出现多层嵌套的 if...else...语句,如何重构可使程序逻辑变得更为清晰易读?

github_31005859 2015-09-02 10:26:03
以下是一个有多层嵌套的if...else...语句的示例程序片段,这样子的写法感觉可读性非常不好,请问如何重构可使程序逻辑变得更为清晰易读?

if($age > '18') {
// do something ...

if($gender == 'male') {
// do something ...

if($name == 'SparkLee') {
// do something ...
} else {
// do something ...
}
}
} else {
// do something ...

if($country == 'china') {
// do something ...

if($favourite == 'basketball') {
// do something ...
}
} else {
// do something ...
}
}
...全文
1128 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2016-12-26
  • 打赏
  • 举报
回复
超过3个以上,可以考虑使用switch
weixin_34368768 2016-12-25
  • 打赏
  • 举报
回复
如果你纯粹只是想格式简单 可以使用三元运算 这样形成的代码 感觉就简洁了一些,如果是if 条件过多 可以使用 switch 语句
changuncle 2016-11-10
  • 打赏
  • 举报
回复
我也想问这个问题,多态思想不错值得思考,同时感谢各位前辈的指点和楼主辛苦发帖
cangshu 2015-09-22
  • 打赏
  • 举报
回复
各段if里的内容一般都是类似的逻辑。 比如 如果是兔子 喂他个胡萝卜 如果是只汪 喂他个肉包子 这样就可以用反射或工厂方法: AnimalFactory::get($animalName)->feed(); 一句搞定。 具体是喂胡萝卜还是肉包子,放到兔子和汪的类里去处理。 反射的方式也类似。可以看看设计模式,这种多态的思想很有帮助。
scut_lkp 2015-09-18
  • 打赏
  • 举报
回复
switch 的代码比这么多的if 好看点。
傲雪星枫 2015-09-05
  • 打赏
  • 举报
回复
嵌套多使用switch比if..else..效率高很多的。 因为switch是用空间换时间。
遗忘那段情 2015-09-04
  • 打赏
  • 举报
回复
用switch
joh_killer 2015-09-03
  • 打赏
  • 举报
回复
习惯就好。。。
lirenbing008 2015-09-02
  • 打赏
  • 举报
回复
没有规律的条件语句 无解
xuzuning 2015-09-02
  • 打赏
  • 举报
回复
这要看你 do something ... 的具体内容了
xuzuning 2015-09-02
  • 打赏
  • 举报
回复
这要看你 do something ... 的具体内容了
傲雪星枫 2015-09-02
  • 打赏
  • 举报
回复
要找共通点。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧