当前位置: 代码迷 >> Web前端 >> 看到这个if-else嵌套!小弟我吐了
  详细解决方案

看到这个if-else嵌套!小弟我吐了

热度:404   发布时间:2014-01-03 14:10:51.0
看到这个if-else嵌套!我吐了~

我去。这是谁写的呀!大家尽情的吐槽吧。

?

if (a == 200) {
            return "请求成功"
        } else {
            if (a == 400) {
                return "错误的请求"
            } else {
                if (a == 404) {
                    return "没有找到访问页"
                } else {
                    if (a == 409) {
                        return "登录冲突,请刷新页面再登录"
                    } else {
                        if (a == 460) {
                            return "请刷新页面再登录"
                        } else {
                            if (a == 461) {
                                return "请刷新页面再登录"
                            } else {
                                if (a == 462) {
                                    return "请刷新页面再登录"
                                } else {
                                    if (a == 463) {
                                        return "无效的查询参数"
                                    } else {
                                        if (a == 464) {
                                            return "缺失数据"
                                        } else {
                                            if (a == 465) {
                                                return "访问错误次数较多,请" + b.statusMsg + "分钟后再登录!"
                                            } else {
                                                if (a == 471) {
                                                    return "无效的用户名"
                                                } else {
                                                    if (a == 472) {
                                                        return "未找到用户名或密码不正确"
                                                    } else {
                                                        if (a == 474) {
                                                            return "验证码不正确"
                                                        } else {
                                                            if (a == 475) {
                                                                return "用户未登录系统"
                                                            } else {
                                                                if (a == 476) {
                                                                    return "无效的加密锁"
                                                                } else {
                                                                    if (a == 477) {
                                                                        return "密码不正确"
                                                                    } else {
                                                                        if (a == 479) {
                                                                            return "参数类型错误"
                                                                        } else {
                                                                            if (a == 480) {
                                                                                return "参数错误"
                                                                            } else {
                                                                                if (a == 481) {
                                                                                    return "已登录系统"
                                                                                } else {
                                                                                    if (a == 482) {
                                                                                        return "无效的跨域请求"
                                                                                    } else {
                                                                                        if (a == 483) {
                                                                                            return "请使用加密锁登录"
                                                                                        } else {
                                                                                            if (a == 484) {
                                                                                                return "用户状态未激活"
                                                                                            } else {
                                                                                                if (a == 485) {
                                                                                                    return "活跃的用户"
                                                                                                } else {
                                                                                                    if (a == 486) {
                                                                                                        return "无效的用户"
                                                                                                    } else {
                                                                                                        if (a == 487) {
                                                                                                            return "无效的用户"
                                                                                                        } else {
                                                                                                            if (a == 488) {
                                                                                                                return "您的账户已锁定,请与管理员联系!"
                                                                                                            } else {
                                                                                                                return "未知错误,没有找到相关错误参数"
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

?

49 楼 502220545 昨天  
直接这么写 不知道可否 个人愚见
if(200) return 。。。
if(400) return 。。。
。。。。。
因为以上除了if 就是else 没有其他的分支
50 楼 mfkvfn 昨天  
小鱼不爱水 写道
我想一定是12306

这个必须要顶
51 楼 alvin198761 昨天  
BuN_Ny 写道
我想说的是,
if (执行的可能性80%) {
  if (执行的可能性80% * 80%) {
  }
  else (执行的可能性20% * 80%) {
  }
}
else (执行的可能性20%) {
}
其实即使可读性差,对于HTTP CODE这种几乎不需要修改的代码,这样写反而是很优秀的。

如果你写错了一个判断,当时测试的人并没有考虑到,现在让你在上面把bug找出来并改正,....
52 楼 wzpwap123 昨天  
很明显这哥们儿瞅你不爽很久了
53 楼 上下求索的浩 昨天  
502220545 写道
直接这么写 不知道可否 个人愚见
if(200) return 。。。
if(400) return 。。。
。。。。。
因为以上除了if 就是else 没有其他的分支


非要这样的话,不如用switch-case,效率上会有差别,在汇编层次switch-case只把条件计算一次,而if-else要每次都计算
54 楼 liujiaoshui 24 小时前  
看见这样的代码如果是真理,你们还想当程序员吗?
55 楼 kojavaee 23 小时前  
不错,代码缩进格式还是很漂亮的
56 楼 duxitao 18 小时前  
上下求索的浩 写道
jzzwy 写道
没有一个方案值得学习 , 将所有的响应码和含义放在一个配置文件里 xml , 或者properties

,200=请求成功 , 接下来你懂的 , 这种就是让实际的代码与具体的行为相分离,优点不修改

代码便于添加 , 缺点:读取配置文件 , 不晓得ResourceBundle会怎么样

支持这种方法,提示信息也可能会做国际化


装逼遭雷劈,没看到是客户端代码吗?客户端代码可以读配置文件?
57 楼 duxitao 18 小时前  
把状态码和状态描述都由服务器返回,状态码不为200时就在页面显示状态描述
58 楼 上下求索的浩 18 小时前  
duxitao 写道
上下求索的浩 写道
jzzwy 写道
没有一个方案值得学习 , 将所有的响应码和含义放在一个配置文件里 xml , 或者properties

,200=请求成功 , 接下来你懂的 , 这种就是让实际的代码与具体的行为相分离,优点不修改

代码便于添加 , 缺点:读取配置文件 , 不晓得ResourceBundle会怎么样

支持这种方法,提示信息也可能会做国际化


装逼遭雷劈,没看到是客户端代码吗?客户端代码可以读配置文件?


看来你不只遭雷劈,还不知道怎么背劈的,你不会把读配置信息的部分写在server端么?没做过BS么?不明白你看贴动不动脑子,还是已经被劈掉了
59 楼 showt 17 小时前  
写在js里面,像39楼那样。
60 楼 yochor 17 小时前  
yixiandave 写道
u011159729 写道
Julian 写道
说用switch case都是菜逼

请问大神你的好方法是什么?并且说出你的理由

一个Map就搞定了吧(在js里面也可以说是json)
况且js里面json更好写
var codeRef = {
  200:'请求成功',
  400:'错误的请求',
  404:'没有找到访问页',
  409:'登录冲突,请刷新页面再登录',
......
}
//只是一个例子,多的就不写了

return codeRef[a];


这个是最好的写法!
61 楼 jzzwy 17 小时前  
上下求索的浩 写道
duxitao 写道
上下求索的浩 写道
jzzwy 写道
没有一个方案值得学习 , 将所有的响应码和含义放在一个配置文件里 xml , 或者properties

,200=请求成功 , 接下来你懂的 , 这种就是让实际的代码与具体的行为相分离,优点不修改

代码便于添加 , 缺点:读取配置文件 , 不晓得ResourceBundle会怎么样

支持这种方法,提示信息也可能会做国际化


装逼遭雷劈,没看到是客户端代码吗?客户端代码可以读配置文件?


看来你不只遭雷劈,还不知道怎么背劈的,你不会把读配置信息的部分写在server端么?没做过BS么?不明白你看贴动不动脑子,还是已经被劈掉了

哦 , 我先承认自己的错误!表示思想有就行 ,赞39楼
62 楼 一个java程序员 17 小时前  
这写的有什么可以吐槽的吗?

谁说人家错了? 只不过代码不好看而已。  有什么值得扒皮的。

63 楼 coolbamboo2008 16 小时前  
还是用枚举的好,再不济也用个switch
64 楼 smallXiaoTi 11 小时前  
求贴主高见。。。。
65 楼 houyujiangjun 2 小时前  
yixiandave 写道
u011159729 写道
Julian 写道
说用switch case都是菜逼

请问大神你的好方法是什么?并且说出你的理由

一个Map就搞定了吧(在js里面也可以说是json)
况且js里面json更好写
var codeRef = {
  200:'请求成功',
  400:'错误的请求',
  404:'没有找到访问页',
  409:'登录冲突,请刷新页面再登录',
......
}
//只是一个例子,多的就不写了

return codeRef[a];


正解, 结题!
66 楼 mfkvfn 2 小时前  
不管是js还是Java代码都应该用Map实现。switch和if/else只是存在语法上的区别,在执行上没有本质区别,需要依次执行多个比较才能到到分支,复杂度为O(N/2)。应该用Map来做,复杂度O(1)
67 楼 178789175 1 小时前  
人才啊 佩服
68 楼 yy4252 33 分钟前  
12306
  相关解决方案