避免多个if/else条件

use*_*541 0 java

使用java 6

要检查70多个属性,如下所示.重构代码的最佳方法是什么?

    if(0 == compareField1) {            
        if(0 == compareField2) {
            if(0 == compareField3) {
                if(0 == compareField4) {
                    if(0 == compareField5) {
                        ......
                    } else {
                        return compareField5;
                    }
                } else {
                    return compareField4;
                }
            } else {
                return compareField3;
            }               
        } else {
            result = compareField2;
        }           
    } else {
        result = compareField1;
    }
Run Code Online (Sandbox Code Playgroud)

m.a*_*icz 7

您可以使用整数数组,其中索引为X的单元格将保留字段数字X的值

final int fieldsCount = 60;
int[] fields = new int[fieldsCount ];
fields = loadFields(); // here you are populating fields

for(int i = 0; i < fieldsCount ; i++) if(fields[i] != 0) return fields[i];

// further logic (else)
Run Code Online (Sandbox Code Playgroud)