遇到大段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)……
}
尽管代码里依然有很多的条件判断,但由于条件都已经正交,就可以继续维护下去。