应用层面: ... 而SWITCH只能对基本类型进行数值比较。两者的可比性就仅限在两个基本类型比较的范围内。 寄存器读取: eg_if:如果对(int a) a 来判断:if(a==1){ //dosomething }else ...
应用层面:
IF语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断;
而SWITCH只能对基本类型进行数值比较。两者的可比性就仅限在两个基本类型比较的范围内。
寄存器读取:
eg_if:如果对(int a) a 来判断:
if(a==1){
//dosomething
}else if(a==2){
//dosomething
}......
这样的话,a在寄存器中就被读取了多次,每一次判断都会读取一次。显然,我们比较的是同一个对象a,读取多次没有必要。
eg_switch:如果对(int a) a 来判断:
switch (a) {
case 0:
//dosomething
break;
case 1:
//dosomething
break;
}
寄存器对a只读取一次,每个case都和读取的a做比较。
运行效率:
(未进行本地测试,网络答案)