首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问为什么switch的效率要比if else 高

2012-02-06 
请教为什么switch的效率要比if else 高?请教为什么switch的效率要比if else 高?希望从编译原理的角度分析

请教为什么switch的效率要比if else 高?
请教为什么switch的效率要比if else 高?

希望从编译原理的角度分析 谢谢哇

[解决办法]
switch可以进行跳转优化,java中对switch有两种处理方式,生成不同的jvm指令,一是tableswitch,一个是lookupswitch.
对于case的分支比较密集的情况,如

Java code
public class Test {    public static void main(String[] args) {        int i = 3;        switch (i) {            case 0:                System.out.println("0");                break;            case 1:                System.out.println("1");                break;            case 3:                System.out.println("3");                break;            case 5:                System.out.println("5");                break;            case 10:                System.out.println("10");                break;            case 13:                System.out.println("13");                break;            case 14:                System.out.println("14");                break;        default:        System.out.println("default");                break;        }    }} 

热点排行