switch和if else效率

switch case 與 if else

  1. switch case會生成一個跳轉表來指示實際的case分支的地址,這個跳轉表的索引號於switch變量的值相等。而 if else是需要順序的遍歷條件,直到條件成立。
switch case 的優缺點

優點
在效率上:當分支較多時,switch的效率是很高的。因爲swtich在確定了選擇值之後,會直接跳轉到那個特定的分支。
缺點

  1. switch case佔用較多的代碼空間,因爲他要生成跳轉表,特別是當case常量分佈範圍很大但實際上有效的case較少的情況下,switch的效率會變得非常低。
  2. switch case 只能處理case爲常量的情況,比如下方代碼:
switch(a)
{
	case 100:
	   //...
	   break;
}
//無法支持 下方代碼
if(a > 10 && a < 100);
if else 的優缺點

優點:if else 能應用於更多的場景,比較靈活。
缺點:必須進行順序遍歷if else;
當然兩者也可以進行連用,switch 中嵌套if else。

總結

在分支較多的請況下,使用switch case的結構會提升程序的效率,但是switch的不足之處是隻能處理字符和數字類型的變量。
if else 相對較靈活,可以用於判斷任何一種表達式是否成立,if else 在分支較少或者較複雜的判斷語句中常用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章