if else 和 switch 的區別

2021-08-03 21:09:31 字數 412 閱讀 5707

一直說想要研究底層原理,把知識學深一些,原來真的像初中的物理老師說的那樣,把基礎的原理都學會,就能做難的題目,高難度題目的框架都是靠簡單的原理搭建的。

進入正文 

區別:switch (i)

1、當分支較多時,當時用switch的效率是很高的。因為switch是隨機訪問的,就是確定了選擇值之後直接跳轉到那個特定的分支,但是if。。else是遍歷所以得可能值,知道找到符合條件的分支,如此看來switch的效率確實比ifelse要高的多。

2、switch...case只能處理case為常量的情況,對非常量的情況是無能為力的。例如 if (a > 1 && a < 100),是無法使用switch...case來處理的。所以,switch只能是在常量選擇分支時比ifelse效率高,但是ifelse能應用於更多的場合,ifelse比較靈活。

SAS巨集中 if else和if else的區別

sas巨集中 if else和if else的區別 data a set x do m 1 to 3 do q 1 to 5 if x q nan and m id and x q id m q then do id m q 1 put 有值 且id相等 id x q id m q 上面 是正常的i...

switch與if else的區別

單從jvm的執行效率上講的話,switch的執行效率要高於if語句 原因在於 switch語句在執行時,首先會生成乙個 跳轉表 來指示實際的case分支的位址,而這個 跳轉表 的索引號與swtich中的case值是相等的,這樣的話,switch就不用像if else那樣,遍歷所有的條件,直至找到正確...

switch與ifelse的效率問題

switch與if.else 的執行的效率問題 今天讀一前輩的程式,發現其在串列埠中斷裡面為了分析協議的報文型別,在中斷函式裡面使用if.else語句。因為報文型別在現在看來只有兩種,以後有可能還會增加,不確定。本人以為這樣用有些不妥,為什麼不用switch語句呢?猜想是不是因為效率方面的考慮呢,畢...