为了账号安全,请及时绑定邮箱和手机立即绑定

如何简化具有许多条件的 IF 语句

如何简化具有许多条件的 IF 语句

ibeautiful 2022-06-09 16:45:49
我经常遇到如下代码示例。if(X == x && A == a){}else if (X == y && A == b){}else if (X == z && A == c){}else if (X == zz && A == d){}或者有时像这样的条件if(X == x && A == a){}else if (X == x && A == b){}else if (X != x &&  A == a){}else if (X !=x  && A == b){}在效率、代码清晰性和可理解性方面,是否有更高效、更好的方法来重构这段代码?
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您可以将语句包装在一个函数中,它会更干净一点: 


if(X == x && A == a){

  do_A();

}

else if (X == x && A == b){

  do_B();

}

else if (X != x &&  A == a){

  do_C()

}

else if (X !=x  && A == b){

  do_D()

}

会成为 :


const doSomething = () => {

  if (X == x && A == a) return do_A();

  if (X == x && A == b) return do_B();

  if (X != x &&  A == a) return do_C();

  if (X !=x  && A == b) return do_D();

};


doSomething();


查看完整回答
反对 回复 2022-06-09
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你可以使用 switch 语句,像这样: switch(expression) { case x: // code block break; case y: // 代码块中断;默认值:// 代码块 } 但是您不会拥有@jcubic 提到的更高效的代码



查看完整回答
反对 回复 2022-06-09
?
森栏

TA贡献1810条经验 获得超5个赞

一个可能的解决方案是使用switch-case如下语句:


switch(X + "|" + A) {

    case x + "|" + a:

        ...

        break;

    case y + "|" + a:

        break;

    case z + "|" + c:

        break;

    case zz + "|" + d:

        break;

}

我不知道您是否认为这种写作风格对您来说更好看,但它的效率低于您在问题中提出的那种,因为您必须在比较它们之前加入字符串。


查看完整回答
反对 回复 2022-06-09
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信