如果检查有多少条件

Hea*_*r T 5 java if-statement conditional-statements

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

if(a==1 && b==1 && c==1 && ... && n==1)
Run Code Online (Sandbox Code Playgroud)

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

另外,既然我已经引起了你的注意,那么效率之间是否存在差异

if(a==1 && b ==1)
Run Code Online (Sandbox Code Playgroud)

if(a==1)
    if(b==1)
Run Code Online (Sandbox Code Playgroud)

Joa*_*uer 8

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

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

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


小智 7

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

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

例:

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

另外一个:

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