if語句,if...else if語句和switch...case語句的區別和分析


  前段時間在工作中遇到了一個關於條件判斷語句的問題,在if語句,if else if語句和switch case語句這三者之間分析,使用其中最有效率的一種方法。

所以就將這個問題作為自己第一篇博客的主要內容吧。

  if語句,if else if語句和switch case語句都屬於流程控制語句。

  在只需要判斷一個條件的時候,自然是使用if語句方便有效;但是當判斷條件很多的時候,我們可以使用多個if語句或者if...else if語句或者switch case語句。

對於這三者的選擇,下面將做一些具體分析;對於后兩者的選擇,又將涉及到程序執行效率的問題。

  if...else if語句和多個if語句的區別還是很大的,if...else if在任何一個環節滿足條件的時候就將會終止判斷,只處理一個滿足條件的情況;而對於多個if語句,

將會對每一個判斷條件進行判斷,自然而然會導致程序的執行效率降低。在多個判斷條件的情況下,使用if...else if語句相對於使用多個if語句而言,可以減少程序

的判斷次數,提高效率。

  在多個判斷條件的情況下,不僅可以使用if...else if語句,還可以使用switch case語句。一般情況下,當判斷條件較多的情況下,使用switch case語句的

效率會高於使用if...else if語句。switch...case與if...else if的根本區別在於,switch...case會生成一個跳轉表來指示實際的case分支的地址,而這個跳 轉表的

索引號與switch變量的值是相等的。從而,switch...case不用像if...else if那樣遍歷條件分支直到命中條件,而只需訪問對應 索引號的表項從而到達定位分支的目的。

所以從效率上來說由於if...else if的遍歷性,代碼執行效率是不高的。

  從匯編層面的分析,請見:http://www.2cto.com/os/201404/291376.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM