遇到大段ifelse不要慌,先分层让条件正交

因为一直在写Lua所以会遇到很多if else的逻辑。

遇到大段大段的else if逻辑会很难理解。

这让我想起了和else if 比较相似的语法switch

在语法上switch后判断的是某一个参量的条件

比如

switch(a)
{
     case a满足条件1:
     case a满足条件2:
}

而if else 可以判断多个参数的多个条件

比如

参数 a 参数 b

if(a 满足条件1)……
elseif(b 满足条件2)……
elseif(a 满足条件2)……
else……

这样的使用elseif在条件多的时候常见的问题是判断条件不正交

考虑到代码的维护性,还是应该将if else 的同级的判断参量 控制为一个

当出现第二个参量的时候适当分级

如上面那个elseif可以等效写成

参数 a 参数 b

if(a 满足条件1)……
elseif(a 满足条件2)……
else
{
	if(b 满足条件2)……
}

尽管代码里依然有很多的条件判断,但由于条件都已经正交,就可以继续维护下去。

上一篇:设计模式——抽象工厂模式及java实现


下一篇:【数字图像处理】Matlab实现-图像增强-彩色图像增强(彩虹编码,热金属编码)