嵌套 If 语句中的重复逻辑

马克斯·利明

我已经遇到过几次这种情况,在那里我将有一个看起来像这样的逻辑结构。

switch(someInteger) 
{
    case 1:
        if(conditionA) {
            if(conditionB) {
                 func1();
            } else {
                 func2();
            }
        } else {
            func3();
        }
        break;

    case 2:
        if(conditionA) {
            if(conditionB) {
                 func4();
            } else {
                 func5();
            }
        } else {
            func6();
        }
        break;
    case 2:
        //ditto
    case 3:
        //ditto
    case someObnoxiouslyHighNumber:
        //ditto
}

每种情况下的结构都是相同的,唯一的区别是被调用的函数。但是现在我正在复制我的逻辑,这感觉很脏。我觉得有一种更优雅的方法来处理这些情况,但我还没有遇到过。

关于如何重构这个的任何想法?

编辑:稍微改变了示例的结构以更加强调问题。

马特克拉克

我不确定,但我很想以这种方式尝试:

if      someInteger == 1 and conditionA and conditionB  then func1
else if someInteger == 1 and conditionA and !conditionB then func2
else if someInteger == 1 and !conditionA                then func3
else if someInteger == 2 and conditionA and conditionB  then func4
else if someInteger == 2 and conditionA and !conditionB then func5
else if someInteger == 2 and !conditionA                then func6
else error "Uncharted territory"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

嵌套循环逻辑中的if语句

来自分类Dev

SELECT嵌套在WITH语句中

来自分类Dev

在 ansible 的 if 语句中嵌套 for 循环

来自分类Dev

需要在 if 语句中嵌套 if 语句的指导

来自分类Dev

嵌套条件语句中的可读性

来自分类Dev

WHERE子句中嵌套SQL语句的结果

来自分类Dev

NULL在单个if语句中检查嵌套指针

来自分类Dev

在WordPress的if else语句中嵌套while循环

来自分类Dev

嵌套在if语句中的MySQL查询-PHP

来自分类Dev

嵌套条件语句中的点规则-COBOL

来自分类Dev

在嵌套的If语句中显示货币单位

来自分类Dev

在单个“ using”语句中嵌套“ IDisposable”

来自分类Dev

WHERE子句中嵌套SQL语句的结果

来自分类Dev

嵌套条件语句中的点规则-COBOL

来自分类Dev

在Java中的嵌套if语句中返回boolean

来自分类Dev

嵌套在if语句中的MySQL查询-PHP

来自分类Dev

Bash脚本嵌套条件语句中的错误

来自分类Dev

嵌套选择语句中的表行计数

来自分类Dev

如果嵌套在 if 语句中 - Javascript

来自分类Dev

从嵌套的选择语句中检索计数

来自分类Dev

嵌套的IF语句

来自分类Dev

嵌套 if 语句?

来自分类Dev

嵌套在WITH语句中的Case语句未选择案例

来自分类Dev

在批处理文件中的for语句中嵌套if语句

来自分类Dev

如何使用嵌套的“ if”语句减少代码重复?

来自分类Dev

C#-避免代码重复:嵌套if语句

来自分类Dev

AND语句中的布尔逻辑

来自分类Dev

SQL语句中的逻辑AND

来自分类Dev

逻辑AND运算符与嵌套的if语句有什么区别?