小编典典

if else vs Java中的开关性能

java

我想知道使用if语句或switch之间是否有效率差异。例如:

if(){
//code
}
else if(){
//code
}
else{
//code
}

我认为,即使第一个if语句为true,程序也需要检查所有if语句。

switch(i){

case 1:
//code
break;
case 2:
//code
break;

但是在开关中,有一个break命令。我的对吗?如果没有,您能否解释一下两者之间的效率差异?


阅读 344

收藏
2020-09-28

共1个答案

小编典典

Switch性能优于if else切换时的性能。一旦评估了开关,它就会知道需要执行哪种情况,但是在if else最坏的情况下必须经历所有情况。

列表条件越长,切换性能越好,但是对于较短的列表(仅两个条件),它也会变慢

为什么切换比如果更快

通过切换,JVM加载要比较的值并遍历值表以找到匹配项,这在大多数情况下更快

2020-09-28