[英]It is a good practice to keep if/else if conditions comparable in terms of context?
我实际上不知道如何正确表达这个问题,提前道歉。
在我的代码审查中,人们向我建议 if 和 else 条件本质上应该具有可比性,如下所示:
if (a == 0)..
else if (a == 1)
else if (a != 3)
else...
基本上,这些是在同一业务 scope - 在这种情况下为 var a
进行评估。
一个极端的反例是:
if (a == 0)
else if (window.size != server.config.size)
else if (user.b == this.user)
else...
灰色区域的一些东西:
if (a == 0)
else if (b == c)
对比
if (a == 0)
else { // implying a != 0
if (b == c)
}
我还没有在这个基本的东西中找到任何编程实践/指南。 请让我知道有任何关于人们如何组织他们的参考。
有时真的很难找到编写任何逻辑的正确方法。 特别是,有不止一种方法可以实现相同的目标。 我想,这对你来说也是同样的情况。
在我的日常编码经验中,在代码审查期间,我也面临这些情况。 您就在这里,您想了解编程实践,即使我尝试在这些情况下找到适当的编程实践或指南,但我们/您应该首先非常正确地了解我们的要求,以决定我们应该遵循哪种方法。
我不确定“本质上可比”是什么意思,但是您的同事尝试根据变量或条件保留单独的 if/else 语句,并且对于不同的变量/条件,他们使用不同的 if/else 语句。
意思是,你应该将你的 if/else 分成两个不同的 if/else,用于不同的变量/条件。 通过了解您的要求,您可以非常正确地打破。
但是你可以多想一想,尽可能多地问自己为什么,你会找到一个正确的答案。
让我知道它是否对您有帮助。 快乐的编码......!
在适当的位置括号/插入括号有助于执行正确的代码。 在编写代码时需要牢记这一点。
谈到您的“if/else if”案例,您提到的案例:
if(a==0)
else if(a==1)
else if(a!=3)
只要案例之后只有一条执行语句,上述代码就可以工作。 从某种意义上说,如果您的代码如下所示:
if(a==0)
System.out.print("CASE 1");
else if(a==1)
System.out.print("CASE 2");
else if(a!=3)
System.out.print("CASE 3");
上面的代码可以正常工作,但如果您有多个语句,则需要括号,例如:
if(a==0)
{
System.out.print("CASE 1");
System.out.print("The value of a equals to 0.");
}
else if(a==1)
{
System.out.print("CASE 2");
System.out.print("The value of a equals to 1.");
}
else if(a!=3)
{
System.out.print("CASE 3");
System.out.print("The value of a does NOT equal to 3.");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.