交換機之間的根本區別...案例和如果...否則那就是開關...case會生成壹個跳轉表來指示實際case分支的地址,這個跳轉表的索引號等於switch變量的值。因此,切換...case不需要遍歷條件分支,直到它遇到像if這樣的條件...否則,只需要訪問索引號對應的表項,就可以達到定位分支的目的。
具體來說,開關...case將生成壹個跳過表,其大小(條目數)為最大case常量+1。程序首先判斷switch變量是否大於最大case常數,如果是,則跳轉到默認分支進行處理;否則,獲取switch變量size的索引號為的跳轉表項的地址(即跳轉表的起始地址+表項的大小*索引號),然後程序跳轉到這個地址執行,從而完成分支跳轉。