在看张老师的高新技术时,记得提到过if else的效率比较低下,然后我就查资料寻求答案,基本说什么的也都有,有的我也看不懂,有一个说法我比较认同,就是if else语句相对于每一个语句块都是相互独立的,每个if判断的条件处都要进行一次判断的寄存,即如下:
char ch = '马';
if(ch=='黑'){
//代码块1
}else if(ch=='马'){
//代码块2
}else if(ch=='程'){
//代码块3
}else if(ch=='序'){
//代码块4
}else if(ch=='员'){
//代码块5
}
而switch语句可以写成:
char ch = '马';
switch(ch){
case '黑':
//代码1
break;
case '马':
//代码2
break;
... ...
}
那么,仅仅是因为if 语句每次都把==两边的两个数据从内存取出来放到寄存区进行比较,
而switch只取一次变量,这样提高的效率吗?请大仙们赐教!
|