if 可以检查多少个条件
How many conditions can an if check for
if 可以检查多少个条件?
例如,
if(a==1 && b==1 && c==1 && ... && n==1)
我知道这可能可以通过嵌套 ifs 简单地解决,然后嵌套多少就不是问题了。但坦率地说,我很好奇,似乎无法找到需要多少。
另外,既然我已经引起了你的注意,那么
在效率上有什么不同吗?
if(a==1 && b ==1)
和
if(a==1)
if(b==1)
据我所知,没有明确的限制。实际限制是当可读性成为问题时。
实际的代码限制可能是由于 Java 方法只能包含大约 64 KiB 的字节码。
你的最后两个代码块做同样的事情(假设它们后面只有一个代码块或语句)。如果涉及 else
,它们只会有所不同。
我不确定 if
子句中语句的数量,但两种语法之间的性能是相同的。无论您使用什么语法,编译器都会生成相同的字节码。
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
}
一个java if
语句可以准确地测试一个条件:
if ( 布尔表达式 ) 语句 [ else 语句 ]
您示例中的 a==1 && b==1 && c==1 && ... && n==1
是 one 布尔表达式,正如其他人已经告诉您的那样,对于允许的布尔表达式的复杂程度没有硬性限制成为.
if 可以检查多少个条件? 例如,
if(a==1 && b==1 && c==1 && ... && n==1)
我知道这可能可以通过嵌套 ifs 简单地解决,然后嵌套多少就不是问题了。但坦率地说,我很好奇,似乎无法找到需要多少。
另外,既然我已经引起了你的注意,那么
在效率上有什么不同吗?if(a==1 && b ==1)
和
if(a==1)
if(b==1)
据我所知,没有明确的限制。实际限制是当可读性成为问题时。
实际的代码限制可能是由于 Java 方法只能包含大约 64 KiB 的字节码。
你的最后两个代码块做同样的事情(假设它们后面只有一个代码块或语句)。如果涉及 else
,它们只会有所不同。
我不确定 if
子句中语句的数量,但两种语法之间的性能是相同的。无论您使用什么语法,编译器都会生成相同的字节码。
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
}
一个java if
语句可以准确地测试一个条件:
if ( 布尔表达式 ) 语句 [ else 语句 ]
您示例中的 a==1 && b==1 && c==1 && ... && n==1
是 one 布尔表达式,正如其他人已经告诉您的那样,对于允许的布尔表达式的复杂程度没有硬性限制成为.