如果检查有多少条件

时间:2015-02-24 15:38:18

标签: java if-statement conditional-statements

如果检查有多少条件? EG,

if(a==1 && b==1 && c==1 && ... && n==1)

我知道这可能只是通过嵌套ifs来解决,然后它不会是一个多少问题。但坦率地说,我很好奇,似乎无法找到需要多少。

另外,既然我已经引起了你的注意,那么

之间的效率是否存在差异
if(a==1 && b ==1)

if(a==1)
    if(b==1)

4 个答案:

答案 0 :(得分:8)

据我所知,没有明确的限制。实际限制是可读性成为一个问题。

实际的代码限制可能是由于Java方法只能包含大约64 KiB的字节码这一事实。

你的最后两个代码块做同样的事情(假设它们之后只有一个代码块或语句)。如果涉及else,它们就会有所不同。

答案 1 :(得分:7)

if中的条件语句的数量没有限制。 此外,两个块中的任何一个都没有性能改进。

两者之间最大的区别在于,您无法控制第一个条件失败的情况。

示例:

if(a==1 && b==1) {
    //do something
} else {
    //no way to tell which one failed without checking again!
}

另一个:

if(a==1) {
    if(b==1) {
        //do something
    } else {
        // 'b' failed (meaning: b is not equal to 1)
    }
} else {
    // 'a' failed
}

答案 2 :(得分:2)

我不确定if子句中语句的数量,但两种语法之间的性能是相同的。无论您使用何种语法,编译器都会生成相同的字节码。

答案 3 :(得分:2)

java if语句可以测试一个条件:

if( boolean-expression 陈述 [其他 声明]

示例中的a==1 && b==1 && c==1 && ... && n==1一个布尔表达式,正如其他人已经告诉过你的那样,对布尔表达式的复杂程度没有硬限制。