Java 多重与多重之间的差异&;和嵌套if

Java 多重与多重之间的差异&;和嵌套if,java,php,android,performance,Java,Php,Android,Performance,求你了,我正在努力找出两者之间的区别。 下面是一个例子 对于多个&&运算符: if(a>b && b>c){ // do some thing } 对于嵌套的if条件 if(a>b){ if(b>c){ //do some thing`enter code here` } } 哪个是快的,哪个应该使用。 两者的区别是什么。 我想知道复杂度增加时的性能。性能差别很小,选择多个&&operator使代码简单易懂这两者

求你了,我正在努力找出两者之间的区别。 下面是一个例子

对于多个&&运算符:

if(a>b && b>c){
    // do some thing
}
对于嵌套的if条件

if(a>b){
    if(b>c){
        //do some thing`enter code here`
    }
}
哪个是快的,哪个应该使用。 两者的区别是什么。
我想知道复杂度增加时的性能。

性能差别很小,选择多个&&operator使代码简单易懂

这两者是等效的:

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中,执行是逐行执行的

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

最好将每个测试放在额外的括号中,以避免运算符优先级问题。

@JRowan请查看是否合并多个&&只有在第一个为真时,才会计算第二个,如果第二个为真,则计算第三个,依此类推。。。