如何将同返回值的嵌套if-else转化为&&/||单if语句
问题:多层嵌套if-else能否简化为单if语句(仅用&&、||)?
在以下两类所有满足条件的分支返回值均一致的伪代码场景中,能否将多层嵌套的if-else结构简化为仅使用&&、||运算符的单个if语句?
注:条件与返回值均为占位符,此为伪代码问题
Case 1
原伪代码
if(condition 1){ if(condition 2){ if(condition 3){ if(condition 4){ if(condition 5){ return(1); } if(condition 6){ if(condition 7){ return(1); } } }else{ if(condition 10){ return(1); } } } } }
简化后代码
if( condition 1 && condition 2 && condition 3 && condition 4 && condition 5 || condition 1 && condition 2 && condition 3 && condition 4 && condition 6 && condition 7 || condition 1 && condition 2 && condition 3 && !condition 4 && condition 10 ){ return(1); }
可以简化,所有返回1的分支路径都能拆解为**逻辑与(&&)串联前置条件,再通过逻辑或(||)**合并所有有效路径。
Case 2
原伪代码
if(condition 1){ if(condition 2){ if(condition 3){ if(condition 4){ if(condition 6){ if(condition 8){ return(2); } }else{ if(condition 9){ return(2); } } } }else{ if(condition 11){ return(2); } } }else{ if(condition 12){ return(2); } } }else if(condition 13){ if(condition 14){ return(2); } }
简化后代码
if( condition 1 && condition 2 && condition 3 && condition 4 && condition 6 && condition 8 || condition 1 && condition 2 && condition 3 && condition 4 && !condition 6 && condition 9 || condition 1 && condition 2 && !condition 3 && condition 11 || condition 1 && !condition 2 && condition 12 || condition 13 && condition 14 ){ return(2); }
可以简化,所有返回2的分支路径同样能拆解为逻辑与串联各层级条件,再用逻辑或合并所有有效路径,覆盖所有原嵌套结构中触发返回的场景。
内容的提问来源于stack exchange,提问作者ulti
相关产品推荐
相关产品推荐

