java 这样的 if ... else .. 怎么优化



 java


 Integer shi = address.indexOf("市");
            Integer xian = address.indexOf("县");
            Integer qi = address.indexOf("旗");
            Integer meng = address.indexOf("盟");
            Integer qu = address.indexOf("区");
            Integer zhen = address.indexOf("镇");
            Integer xiang = address.indexOf("乡");

            // 市
            if(shi != -1) {

            } else {

                // 县
                if(xian != -1) {

                } else {

                    // 旗
                    if(xian != -1) {

                    } else {

                        // 盟
                        if(xian != -1) {

                        } else {

                            // 区
                            if(xian != -1) {

                            } else {

                                // 镇
                                if(xian != -1) {

                                } else {

                                    // 乡
                                    if(xian != -1) {

                                    } else {

                                    }
                                }
                            }
                        }
                    }
                }
            }

java

天真真是无邪 9 years ago

请参见《重构》 第九章节 简化条件表达式:

图片描述

不许欺负黄瓜 answered 9 years ago

大概思路是提炼方法,使用return简化else逻辑。


 if(shi != -1){
        //TODO 
        return;
    }

    if(xian != -1){
        //TODO
        return;
    }
    ...

apejuho answered 9 years ago

Your Answer