多个 && 和嵌套 if 之间的差异


Diffrence between multiple && and nested if

请 我试图找到两者之间的区别。下面是示例

对于多个 && 运算符:

if(a>b && b>c){
    // do some thing
}

对于嵌套的 if 条件

if(a>b){
    if(b>c){
        //do some thing`enter code here`
    }
}
哪个

是快速的,哪个应该使用。 两者有什么区别。我想知道复杂性增加时的性能。

只有很小的性能差异,选择多个&&&运算符使代码简单易懂

这两者是等效的:

if (condition1) block1 
else if (condition2) block2
if (condition1) block1 
else
{
   if (condition2) block2
}

我认为它们也编译到同一个程序集,所以应该没有区别。

区别主要在于可读性和维护。

两个逻辑条件的串联通常应该意味着它们之间存在语义关系。

要考虑的另一件事是范围界定。嵌套的 if 为您提供了此区域的额外灵活性。

它们实际上都是相同的。无论哪种方式,您都必须测试至少一个条件。在这两个例子中,如果a小于b,评估将结束,程序将继续下一段代码。此外,现代Java编译器实际上会将这两个示例编译为相同的字节码。因此,要回答您的问题,任何一个都很好,并且一个不会表现出比另一个更好的性能。我个人使用第一个示例,因为它更紧凑,我觉得它更容易阅读。

我认为第一个是标准方法。

 if(a>b && b>c)
{
// do some thing
}

它减少了行数。 这意味着它遵循不要重复自己(DRY)原则。在java中,执行是逐行的

请注意,对于逻辑 AND 版本 (&&),ANSI C 不需要特定的操作顺序。这意味着如果第二个测试取决于第一个测试的结果,则两者可能会产生不同的结果。

将每个测试括在额外的括号中也是明智的,以避免操作员优先级问题。